From: H. Nikolaus Schaller <[email protected]>

commit 2d4100632fa1947bf3e8d7a091e94e2cf21923af upstream.

omap_w1_read_byte() should return -1 (or 0xff) in case of
error (e.g. missing battery).

The code accidentially overwrites the variable ret and not val,
which is returned. So it will return the initial value 0 instead
of -1.

Fixes: 27d13da8782a ("w1: omap-hdq: Simplify driver with PM runtime 
autosuspend")
Cc: [email protected] # v5.6+
Acked-by: Tony Lindgren <[email protected]>
Signed-off-by: H. Nikolaus Schaller <[email protected]>
Link: 
https://lore.kernel.org/r/b2c2192b461fbb9b8e9bea4ad514a49557a7210b.1590255176.git....@goldelico.com
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 drivers/w1/masters/omap_hdq.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/drivers/w1/masters/omap_hdq.c
+++ b/drivers/w1/masters/omap_hdq.c
@@ -464,7 +464,7 @@ static u8 omap_w1_read_byte(void *_hdq)
 
        ret = hdq_read_byte(hdq_data, &val);
        if (ret)
-               ret = -1;
+               val = -1;
 
        pm_runtime_mark_last_busy(hdq_data->dev);
        pm_runtime_put_autosuspend(hdq_data->dev);


Reply via email to