mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
hwmon: (pmbus) Fix return value check from thermal zone registration
The PMBus core used to call devm_thermal_zone_of_sensor_register() to register thermal zones. Commit613ed3f676("hwmon: pm_bus: core: Switch to new of thermal API") changed this to call devm_thermal_of_zone_register() instead. The code subsequently checks if the call failed because the thermal subsystem is not configured. devm_thermal_zone_of_sensor_register() used to return -ENODEV in this case. devm_thermal_of_zone_register() returns -ENOTSUPP. The code currently still checks for -ENOVEV. This results in driver instantiation failures if the thermal subsystem is disabled. Check for -ENOTSUPP to fix the problem. Keep checking for -ENODEV because this indicates that no thermal zone is configured for the sensor, which is acceptable for the driver and must not cause a registration failure. Fixes:613ed3f676("hwmon: pm_bus: core: Switch to new of thermal API") Cc: stable@vger.kernel.org Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
9aa6cc563e
commit
4fc79634af
|
|
@ -1532,10 +1532,11 @@ static int pmbus_thermal_add_sensor(struct pmbus_data *pmbus_data,
|
|||
tzd = devm_thermal_of_zone_register(dev, index - 1, tdata,
|
||||
&pmbus_thermal_ops);
|
||||
/*
|
||||
* If CONFIG_THERMAL_OF is disabled, this returns -ENODEV,
|
||||
* so ignore that error but forward any other error.
|
||||
* If CONFIG_THERMAL_OF is disabled, devm_thermal_of_zone_register()
|
||||
* returns -ENOTSUPP. If no thermal zone is configured for the sensor,
|
||||
* it returns -ENODEV. Ignore those errors but forward any other error.
|
||||
*/
|
||||
if (IS_ERR(tzd) && (PTR_ERR(tzd) != -ENODEV)) {
|
||||
if (IS_ERR(tzd) && PTR_ERR(tzd) != -ENODEV && PTR_ERR(tzd) != -ENOTSUPP) {
|
||||
devm_kfree(dev, tdata);
|
||||
return PTR_ERR(tzd);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user