mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
thermal: core: Fix thermal zone device registration error path
If thermal_zone_device_register_with_trips() fails after registering
a thermal zone device, it needs to wait for the tz->removal completion
like thermal_zone_device_unregister(), in case user space has managed
to take a reference to the thermal zone device's kobject, in which case
thermal_release() may not be called by the error path itself and tz may
be freed prematurely.
Add the missing wait_for_completion() call to the thermal zone device
registration error path.
Fixes: 04e6ccfc93 ("thermal: core: Fix NULL pointer dereference in zone registration error path")
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: All applicable <stable@vger.kernel.org>
Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Tested-by: Lukasz Luba <lukasz.luba@arm.com>
Link: https://patch.msgid.link/2849815.mvXUDI8C0e@rafael.j.wysocki
This commit is contained in:
parent
45b859b072
commit
9e07e3b818
|
|
@ -1642,6 +1642,7 @@ thermal_zone_device_register_with_trips(const char *type,
|
|||
device_del(&tz->device);
|
||||
release_device:
|
||||
put_device(&tz->device);
|
||||
wait_for_completion(&tz->removal);
|
||||
remove_id:
|
||||
ida_free(&thermal_tz_ida, id);
|
||||
free_tzp:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user