misc/ics932s401: Add a missing check to i2c_smbus_read_word_data
authorAditya Pakki <pakki001@umn.edu>
Mon, 24 Dec 2018 17:31:13 +0000 (11:31 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 18 Jan 2019 15:34:06 +0000 (16:34 +0100)
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>
drivers/misc/ics932s401.c

index 81a0541..294fb2f 100644 (file)
@@ -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;
        }