lkml.org 
[lkml]   [2022]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/9] thermal/core: Destroy thermal zone device mutex in release function
    Date
    Accesses to thermal zones, and with it the thermal zone device mutex,
    are still possible after the thermal zone device has been unregistered.
    For example, thermal_zone_get_temp() can be called from temp_show()
    in thermal_sysfs.c if the sysfs attribute was opened before the thermal
    device was unregistered.

    Move the call to mutex_destroy from thermal_zone_device_unregister()
    to thermal_release() to ensure that it is only destroyed after it is
    guaranteed to be no longer accessed.

    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    ---
    drivers/thermal/thermal_core.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
    index 117eeaf7dd24..f548875a016d 100644
    --- a/drivers/thermal/thermal_core.c
    +++ b/drivers/thermal/thermal_core.c
    @@ -759,6 +759,7 @@ static void thermal_release(struct device *dev)
    sizeof("thermal_zone") - 1)) {
    tz = to_thermal_zone(dev);
    thermal_zone_destroy_device_groups(tz);
    + mutex_destroy(&tz->lock);
    kfree(tz);
    } else if (!strncmp(dev_name(dev), "cooling_device",
    sizeof("cooling_device") - 1)) {
    @@ -1390,7 +1391,6 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz)
    thermal_remove_hwmon_sysfs(tz);
    ida_free(&thermal_tz_ida, tz->id);
    ida_destroy(&tz->ida);
    - mutex_destroy(&tz->lock);
    device_unregister(&tz->device);

    thermal_notify_tz_delete(tz_id);
    --
    2.36.2
    \
     
     \ /
      Last update: 2022-10-17 15:09    [W:2.350 / U:0.064 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site