]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
thermal: core: Initialize thermal zones before registering them
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 4 Oct 2024 19:05:49 +0000 (21:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 14 Dec 2024 18:50:44 +0000 (19:50 +0100)
[ Upstream commit 662f920f7e390db5d1a6792a2b0ffa59b6c962fc ]

Since user space can start interacting with a new thermal zone as soon
as device_register() called by thermal_zone_device_register_with_trips()
returns, it is better to initialize the thermal zone before calling
device_register() on it.

Fixes: d0df264fbd3c ("thermal/core: Remove pointless thermal_zone_device_reset() function")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/3336146.44csPzL39Z@rjwysocki.net
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thermal/thermal_core.c

index ce748e03e433118b8fae978af23e3689d3aa85ee..bb3a4b67203628b77822d8680856af54c76bcee3 100644 (file)
@@ -1271,6 +1271,7 @@ thermal_zone_device_register(const char *type, int num_trips, int mask,
                thermal_zone_destroy_device_groups(tz);
                goto remove_id;
        }
+       thermal_zone_device_init(tz);
        result = device_register(&tz->device);
        if (result)
                goto release_device;
@@ -1313,7 +1314,6 @@ thermal_zone_device_register(const char *type, int num_trips, int mask,
 
        INIT_DELAYED_WORK(&tz->poll_queue, thermal_zone_device_check);
 
-       thermal_zone_device_init(tz);
        /* Update the new thermal zone and mark it as already updated. */
        if (atomic_cmpxchg(&tz->need_update, 1, 0))
                thermal_zone_device_update(tz, THERMAL_EVENT_UNSPECIFIED);