From: Guenter Roeck Date: Thu, 10 Nov 2022 15:24:57 +0000 (-0800) Subject: thermal/core: Protect hwmon accesses to thermal operations with thermal zone mutex X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=ea37bec51ff442546e4a57d5cca2de9cc64a9df3;p=linux.git thermal/core: Protect hwmon accesses to thermal operations with thermal zone mutex In preparation to protecting access to thermal operations against thermal zone device removal, protect hwmon accesses to thermal zone operations with the thermal zone mutex. After acquiring the mutex, ensure that the thermal zone device is registered before proceeding. Signed-off-by: Guenter Roeck Signed-off-by: Rafael J. Wysocki --- diff --git a/drivers/thermal/thermal_hwmon.c b/drivers/thermal/thermal_hwmon.c index f53f4ceb6a5de..c594c42bea6da 100644 --- a/drivers/thermal/thermal_hwmon.c +++ b/drivers/thermal/thermal_hwmon.c @@ -77,7 +77,15 @@ temp_crit_show(struct device *dev, struct device_attribute *attr, char *buf) int temperature; int ret; - ret = tz->ops->get_crit_temp(tz, &temperature); + mutex_lock(&tz->lock); + + if (device_is_registered(&tz->device)) + ret = tz->ops->get_crit_temp(tz, &temperature); + else + ret = -ENODEV; + + mutex_unlock(&tz->lock); + if (ret) return ret;