summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorAditya Pakki <pakki001@umn.edu>2018-12-24 11:31:13 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-01-18 16:34:06 +0100
commitb05ae01fdb8966afff5b153e7a7ee24684745e2d (patch)
tree0a112aa7bf0a5255e37488886cfb4717c96afe85 /drivers
parent068ad41ec565357f4c37e52d4026c896bdeaec56 (diff)
misc/ics932s401: Add a missing check to i2c_smbus_read_word_data
ics932s401_update_device may fail reading in i2c_smbus_read_word_data due to error in i2c_smbus_xfer. The fix checks the status and defaults the register to 0. Signed-off-by: Aditya Pakki <pakki001@umn.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/misc/ics932s401.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/misc/ics932s401.c b/drivers/misc/ics932s401.c
index 81a0541ef3ac..294fb2f66bfe 100644
--- a/drivers/misc/ics932s401.c
+++ b/drivers/misc/ics932s401.c
@@ -146,6 +146,8 @@ static struct ics932s401_data *ics932s401_update_device(struct device *dev)
*/
for (i = 0; i < NUM_MIRRORED_REGS; i++) {
temp = i2c_smbus_read_word_data(client, regs_to_copy[i]);
+ if (temp < 0)
+ data->regs[regs_to_copy[i]] = 0;
data->regs[regs_to_copy[i]] = temp >> 8;
}