Hi,
The error paths in __thermal_cooling_device_register() are trying to free
un-acquired resources, fix that and clean it up a bit.
Caleb, can you please test this? I have just build tested it for now.
--
Viresh
Viresh Kumar (3):
thermal: core: call put_device() only after device_register() fails
thermal: core: Move cdev cleanup to thermal_release()
thermal: core: Use device_unregister() instead of device_del/put()
drivers/thermal/thermal_core.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
--
2.31.1.272.g89b43f80a514
Lets not open code device_unregister() unnecessarily.
Signed-off-by: Viresh Kumar <[email protected]>
---
drivers/thermal/thermal_core.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
index 1fb109a97ff6..9fb37c5d9c4f 100644
--- a/drivers/thermal/thermal_core.c
+++ b/drivers/thermal/thermal_core.c
@@ -1109,8 +1109,7 @@ void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
mutex_unlock(&thermal_list_lock);
- device_del(&cdev->device);
- put_device(&cdev->device);
+ device_unregister(&cdev->device);
}
EXPORT_SYMBOL_GPL(thermal_cooling_device_unregister);
--
2.31.1.272.g89b43f80a514
On 2023/1/18 16:38, Viresh Kumar wrote:
> Lets not open code device_unregister() unnecessarily.
>
> Signed-off-by: Viresh Kumar <[email protected]>
> ---
Reviewed-by: Yang Yingliang <[email protected]>
> drivers/thermal/thermal_core.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c
> index 1fb109a97ff6..9fb37c5d9c4f 100644
> --- a/drivers/thermal/thermal_core.c
> +++ b/drivers/thermal/thermal_core.c
> @@ -1109,8 +1109,7 @@ void thermal_cooling_device_unregister(struct thermal_cooling_device *cdev)
>
> mutex_unlock(&thermal_list_lock);
>
> - device_del(&cdev->device);
> - put_device(&cdev->device);
> + device_unregister(&cdev->device);
> }
> EXPORT_SYMBOL_GPL(thermal_cooling_device_unregister);
>