On Mon, Apr 18, 2022 at 05:07:06PM +0800, Ji-Ze Hong (Peter Hong) wrote: > All temperature of Fintek superio hwmonitor that using 1-byte reg will use > 2's complement. > > In show_temp() > temp = data->temp[nr] * 1000; > > When data->temp[nr] read as 255, it indicate -1C, but this code will report > 255C to userspace. It'll be ok when change to: > temp = ((s8)data->temp[nr]) * 1000; > > Signed-off-by: Ji-Ze Hong (Peter Hong) <hpeter+linux_kernel@xxxxxxxxx> Applied. Thanks, Guenter > --- > drivers/hwmon/f71882fg.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/hwmon/f71882fg.c b/drivers/hwmon/f71882fg.c > index 938a8b9ec70d..6830e029995d 100644 > --- a/drivers/hwmon/f71882fg.c > +++ b/drivers/hwmon/f71882fg.c > @@ -1578,8 +1578,9 @@ static ssize_t show_temp(struct device *dev, struct device_attribute *devattr, > temp *= 125; > if (sign) > temp -= 128000; > - } else > - temp = data->temp[nr] * 1000; > + } else { > + temp = ((s8)data->temp[nr]) * 1000; > + } > > return sprintf(buf, "%d\n", temp); > }