[lm-sensors] [PATCH] Bugfix for ds620.c (sign error)

Guenter Roeck guenter.roeck at ericsson.com
Wed Sep 21 18:54:56 CEST 2011


Hi Roland,

On Wed, 2011-09-21 at 12:36 -0400, Roland Stigge wrote:
> Bugfix for ds620.c: Signed temperatures were not handled appropriately
> 
> Signed-off-by: Roland Stigge <stigge at antcom.de>
> 
> 
> diff --git a/drivers/hwmon/ds620.c b/drivers/hwmon/ds620.c
> index 257957c..92e39fa 100644
> --- a/drivers/hwmon/ds620.c
> +++ b/drivers/hwmon/ds620.c
> @@ -72,7 +72,7 @@ struct ds620_data {
>  	char valid;		/* !=0 if following fields are valid */
>  	unsigned long last_updated;	/* In jiffies */
>  
> -	u16 temp[3];		/* Register values, word */
> +	s16 temp[3];		/* Register values, word */
>  };
>  
>  /*
> @@ -169,7 +169,8 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *da,
>  	if (IS_ERR(data))
>  		return PTR_ERR(data);
>  
> -	return sprintf(buf, "%d\n", ((data->temp[attr->index] / 8) * 625) / 10);
> +	return sprintf(buf, "%d\n",
> +			(((int)data->temp[attr->index] / 8) * 625) / 10);

since data->temp is now already signed, you do not need the typecast to
int here (conversion from s16 to int is automatic).

Thanks,
Guenter






More information about the lm-sensors mailing list