linux/drivers/hwmon/pmbus
Guenter Roeck b84000f227 hwmon: (pmbus_core) Fix Deadlock in pmbus_regulator_get_status
pmbus_regulator_get_status() acquires update_lock.
pmbus_regulator_get_error_flags() acquires it again, resulting in an
immediate deadlock.

Call _pmbus_get_flags() from pmbus_regulator_get_status() directly
to avoid the problem.

Reported-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Closes: https://lore.kernel.org/linux-hwmon/b7a3ad85-aab4-4718-a001-1d8b1c0eef36@roeck-us.net/T/#u
Cc: Naresh Solanki <Naresh.Solanki@9elements.com>
Cc: stable@vger.kernel.org # v6.2+
Fixes: c05f477c4b ("hwmon: (pmbus/core) Implement regulator get_status")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
2023-07-26 20:34:30 -07:00
..
acbel-fsg032.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
adm1266.c hwmon: (pmbus/adm1266) Drop unnecessary error check for debugfs_create_dir 2023-06-08 06:43:00 -07:00
adm1275.c hwmon: (pmbus/adm1275) Disable ADC while updating PMON_CONFIG 2023-06-22 10:39:58 -07:00
bel-pfe.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
bpa-rs600.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
delta-ahe50dc-fan.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
dps920ab.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
fsp-3y.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ibm-cffps.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
inspur-ipsps.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir35221.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir36021.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ir38064.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
irps5401.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
isl68137.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
Kconfig hwmon: (pmbus/acbel-fsg032) Add Acbel power supply 2023-04-19 07:08:40 -07:00
lm25066.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
lt7182s.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc2978.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ltc3815.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
Makefile hwmon: (pmbus/acbel-fsg032) Add Acbel power supply 2023-04-19 07:08:40 -07:00
max8688.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max15301.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max16064.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max16601.c hwmon: (pmbus/max16601) Add support for new revisions of MAX16508 2023-06-10 08:28:14 -07:00
max20730.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max20751.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max31785.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
max34440.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp2888.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp2975.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mp5023.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
mpq7932.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pim4328.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pli1209bc.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pm6764tr.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pmbus_core.c hwmon: (pmbus_core) Fix Deadlock in pmbus_regulator_get_status 2023-07-26 20:34:30 -07:00
pmbus.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
pmbus.h hwmon: (pmbus/core) Add lock and unlock functions 2023-04-19 07:08:40 -07:00
pxe1610.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
q54sj108a2.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
stpddc60.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tda38640.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps546d24.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps40422.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
tps53679.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
ucd9000.c hwmon: (pmbus/ucd9000) Drop unnecessary error check for debugfs_create_dir 2023-06-08 06:43:00 -07:00
ucd9200.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
xdpe152c4.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
xdpe12284.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00
zl6100.c hwmon: Switch i2c drivers back to use .probe() 2023-06-08 06:41:17 -07:00