• Paul Fertser's avatar
    hwmon: (tmp421) handle I2C errors · 2938b297
    Paul Fertser authored
    Function i2c_smbus_read_byte_data() can return a negative error number
    instead of the data read if I2C transaction failed for whatever reason.
    
    Lack of error checking can lead to serious issues on production
    hardware, e.g. errors treated as temperatures produce spurious critical
    temperature-crossed-threshold errors in BMC logs for OCP server
    hardware. The patch was tested with Mellanox OCP Mezzanine card
    emulating TMP421 protocol for temperature sensing which sometimes leads
    to I2C protocol error during early boot up stage.
    
    Fixes: 9410700b ("hwmon: Add driver for Texas Instruments TMP421/422/423 sensor chips")
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarPaul Fertser <fercerpav@gmail.com>
    Link: https://lore.kernel.org/r/20210924093011.26083-1-fercerpav@gmail.com
    [groeck: dropped unnecessary line breaks]
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    2938b297
tmp421.c 7.82 KB