From: Rafael J. Wysocki Date: Fri, 4 Oct 2024 19:26:12 +0000 (+0200) Subject: thermal: core: Mark thermal zones as exiting before unregistration X-Git-Tag: v6.13-rc1~193^2~3^2~33 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1dae3e70b473adc32f81ca1be926440f9b1de9dc;p=thirdparty%2Flinux.git thermal: core: Mark thermal zones as exiting before unregistration In analogy with a previous change in the thermal zone registration code path, to ensure that __thermal_zone_device_update() will return early for thermal zones that are going away, introduce a thermal zone state flag representing the "exit" state and set it while deleting the thermal zone from thermal_tz_list. Signed-off-by: Rafael J. Wysocki Link: https://patch.msgid.link/4394176.ejJDZkT8p0@rjwysocki.net Reviewed-by: Lukasz Luba --- diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 5ae20a740a505..841d072bbe937 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -1621,7 +1621,10 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz) } mutex_lock(&tz->lock); + + tz->state |= TZ_STATE_FLAG_EXIT; list_del(&tz->node); + mutex_unlock(&tz->lock); /* Unbind all cdevs associated with 'this' thermal zone */ diff --git a/drivers/thermal/thermal_core.h b/drivers/thermal/thermal_core.h index 95d920e8403ac..f8d2e85d24081 100644 --- a/drivers/thermal/thermal_core.h +++ b/drivers/thermal/thermal_core.h @@ -65,6 +65,7 @@ struct thermal_governor { #define TZ_STATE_FLAG_SUSPENDED BIT(0) #define TZ_STATE_FLAG_RESUMING BIT(1) #define TZ_STATE_FLAG_INIT BIT(2) +#define TZ_STATE_FLAG_EXIT BIT(3) #define TZ_STATE_READY 0