Skip to content
/ linux Public

Commit 48fed64

Browse files
Sanman Pradhangregkh
authored andcommitted
hwmon: (pmbus/mp2975) Add error check for pmbus_read_word_data() return value
commit 19d4b9c upstream. mp2973_read_word_data() XORs the return value of pmbus_read_word_data() with PB_STATUS_POWER_GOOD_N without first checking for errors. If the I2C transaction fails, a negative error code is XORed with the constant, producing a corrupted value that is returned as valid status data instead of propagating the error. Add the missing error check before modifying the return value. Fixes: acda945 ("hwmon: (pmbus/mp2975) Fix PGOOD in READ_STATUS_WORD") Cc: stable@vger.kernel.org Signed-off-by: Sanman Pradhan <psanman@juniper.net> Link: https://lore.kernel.org/r/20260317173308.382545-3-sanman.pradhan@hpe.com Signed-off-by: Guenter Roeck <linux@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 4418f31 commit 48fed64

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

drivers/hwmon/pmbus/mp2975.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,8 @@ static int mp2973_read_word_data(struct i2c_client *client, int page,
313313
case PMBUS_STATUS_WORD:
314314
/* MP2973 & MP2971 return PGOOD instead of PB_STATUS_POWER_GOOD_N. */
315315
ret = pmbus_read_word_data(client, page, phase, reg);
316+
if (ret < 0)
317+
return ret;
316318
ret ^= PB_STATUS_POWER_GOOD_N;
317319
break;
318320
case PMBUS_OT_FAULT_LIMIT:

0 commit comments

Comments
 (0)