summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJean Delvare2009-03-12 13:36:38 +0100
committerJean Delvare2009-03-12 13:36:38 +0100
commit3bb9db79235e19dbb18ba6f4a428a97c69115319 (patch)
treefdbd5f7157ff3c57c9981e118df00a3261a24f76 /drivers
parentMerge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/air... (diff)
downloadkernel-qcow2-linux-3bb9db79235e19dbb18ba6f4a428a97c69115319.tar.gz
kernel-qcow2-linux-3bb9db79235e19dbb18ba6f4a428a97c69115319.tar.xz
kernel-qcow2-linux-3bb9db79235e19dbb18ba6f4a428a97c69115319.zip
hwmon: (abituguru3) Fix I/O error handling
Fix a logic bug reported by Roel Kluin, by rewriting the error handling code in a clearer way. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Roel Kluin <roel.kluin@gmail.com> Acked-by: Alistair John Strachan <alistair@devzero.co.uk> Acked-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwmon/abituguru3.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/hwmon/abituguru3.c b/drivers/hwmon/abituguru3.c
index e52b38806d03..ad2b3431b725 100644
--- a/drivers/hwmon/abituguru3.c
+++ b/drivers/hwmon/abituguru3.c
@@ -760,8 +760,11 @@ static int abituguru3_read_increment_offset(struct abituguru3_data *data,
for (i = 0; i < offset_count; i++)
if ((x = abituguru3_read(data, bank, offset + i, count,
- buf + i * count)) != count)
- return i * count + (i && (x < 0)) ? 0 : x;
+ buf + i * count)) != count) {
+ if (x < 0)
+ return x;
+ return i * count + x;
+ }
return i * count;
}