* [PATCH] drivers/hwmon/emc1403.c: fix inverted set_hyst()
@ 2014-05-11 12:40 Josef Gajdusek
2014-05-12 8:36 ` Jean Delvare
0 siblings, 1 reply; 2+ messages in thread
From: Josef Gajdusek @ 2014-05-11 12:40 UTC (permalink / raw)
To: jdelvare; +Cc: linux, lm-sensors, linux-kernel
Fixes inverted set_hyst() (i. e. writing 76000 actually set it to 74000)
Signed-off-by: Josef Gajdusek <atx@atx.name>
---
diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c
index 90ec117..61d89d6 100644
--- a/drivers/hwmon/emc1403.c
+++ b/drivers/hwmon/emc1403.c
@@ -163,7 +163,7 @@ static ssize_t store_hyst(struct device *dev,
if (retval < 0)
goto fail;
- hyst = val - retval * 1000;
+ hyst = retval * 1000 - val;
hyst = DIV_ROUND_CLOSEST(hyst, 1000);
if (hyst < 0 || hyst > 255) {
retval = -ERANGE;
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: [PATCH] drivers/hwmon/emc1403.c: fix inverted set_hyst()
2014-05-11 12:40 [PATCH] drivers/hwmon/emc1403.c: fix inverted set_hyst() Josef Gajdusek
@ 2014-05-12 8:36 ` Jean Delvare
0 siblings, 0 replies; 2+ messages in thread
From: Jean Delvare @ 2014-05-12 8:36 UTC (permalink / raw)
To: Josef Gajdusek; +Cc: linux, lm-sensors, linux-kernel
Hi Josef,
On Sun, 11 May 2014 14:40:44 +0200, Josef Gajdusek wrote:
> Fixes inverted set_hyst() (i. e. writing 76000 actually set it to 74000)
This is a rather poor description of the symptoms. The typical result
from the bug is that you can't actually set the hysteresis value, the
driver with fail with "write error: Numerical result out of range".
Writing an hysteresis value above the critical limit to get the driver
to set it below that limit, is the workaround, not the symptom.
Also, the function is called store_hyst(), not set_hyst().
> Signed-off-by: Josef Gajdusek <atx@atx.name>
> ---
> diff --git a/drivers/hwmon/emc1403.c b/drivers/hwmon/emc1403.c
> index 90ec117..61d89d6 100644
> --- a/drivers/hwmon/emc1403.c
> +++ b/drivers/hwmon/emc1403.c
> @@ -163,7 +163,7 @@ static ssize_t store_hyst(struct device *dev,
> if (retval < 0)
> goto fail;
>
> - hyst = val - retval * 1000;
> + hyst = retval * 1000 - val;
> hyst = DIV_ROUND_CLOSEST(hyst, 1000);
> if (hyst < 0 || hyst > 255) {
> retval = -ERANGE;
Anyway, fix is correct, good catch.
Reviewed-by: Jean Delvare <jdelvare@suse.de>
This should go to stable trees. Guenter, I'll let you deal with this,
thanks.
--
Jean Delvare
SUSE L3 Support
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-05-12 8:36 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-11 12:40 [PATCH] drivers/hwmon/emc1403.c: fix inverted set_hyst() Josef Gajdusek
2014-05-12 8:36 ` Jean Delvare
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox