• Adam Wujek's avatar
    hwmon: (pmbus) Check PEC support before reading other registers · d1baf7a3
    Adam Wujek authored
    Make sure that the support of PEC is determined before the read of other
    registers. Otherwise the validation of PEC can trigger an error on the read
    of STATUS_BYTE or STATUS_WORD registers.
    
    The problematic scenario is the following. A device with enabled PEC
    support is up and running and a kernel driver is loaded.
    Then the driver is unloaded (or device unbound), the HW device
    is reconfigured externally (e.g. by i2cset) to advertise itself as not
    supporting PEC. Without the move of the code, at the second load of
    the driver (or bind) the STATUS_BYTE or STATUS_WORD register is always
    read with PEC enabled, which is likely to cause a read error resulting
    with fail of a driver load (or bind).
    Signed-off-by: default avatarAdam Wujek <dev_public@wujek.eu>
    Link: https://lore.kernel.org/r/20220519233334.438621-1-dev_public@wujek.eu
    Fixes: 75d2b2b0 ("hwmon: (pmbus) disable PEC if not enabled")
    Fixes: 4e5418f7 ("hwmon: (pmbus_core) Check adapter PEC support")
    [groeck: Added Fixes: tags, dropped continuation line]
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    d1baf7a3
pmbus_core.c 75.6 KB