2023-01-18 10:06:54

by Viresh Kumar

[permalink] [raw]
Subject: [PATCH 0/3] thermal: Fix/cleanup error paths in __thermal_cooling_device_register()

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


2023-01-18 10:46:16

by Viresh Kumar

[permalink] [raw]
Subject: [PATCH 3/3] thermal: core: Use device_unregister() instead of device_del/put()

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

2023-01-19 09:46:30

by Yang Yingliang

[permalink] [raw]
Subject: Re: [PATCH 3/3] thermal: core: Use device_unregister() instead of device_del/put()


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);
>