2023-03-13 14:35:03

by Rafael J. Wysocki

[permalink] [raw]
Subject: [PATCH v2 2/4] thermal: core: Introduce thermal_cooling_device_present()

From: Rafael J. Wysocki <[email protected]>

Introduce a helper function, thermal_cooling_device_present(), for
checking if the given cooling device is in the list of registered
cooling devices to avoid some code duplication in a subsequent
patch.

No expected functional impact.

Signed-off-by: Rafael J. Wysocki <[email protected]>
---

v1 -> v2: No changes

---
drivers/thermal/thermal_core.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)

Index: linux-pm/drivers/thermal/thermal_core.c
===================================================================
--- linux-pm.orig/drivers/thermal/thermal_core.c
+++ linux-pm/drivers/thermal/thermal_core.c
@@ -1045,6 +1045,18 @@ devm_thermal_of_cooling_device_register(
}
EXPORT_SYMBOL_GPL(devm_thermal_of_cooling_device_register);

+static bool thermal_cooling_device_present(struct thermal_cooling_device *cdev)
+{
+ struct thermal_cooling_device *pos = NULL;
+
+ list_for_each_entry(pos, &thermal_cdev_list, node) {
+ if (pos == cdev)
+ return true;
+ }
+
+ return false;
+}
+
static void __unbind(struct thermal_zone_device *tz, int mask,
struct thermal_cooling_device *cdev)
{
@@ -1067,20 +1079,17 @@ void thermal_cooling_device_unregister(s
int i;
const struct thermal_zone_params *tzp;
struct thermal_zone_device *tz;
- struct thermal_cooling_device *pos = NULL;

if (!cdev)
return;

mutex_lock(&thermal_list_lock);
- list_for_each_entry(pos, &thermal_cdev_list, node)
- if (pos == cdev)
- break;
- if (pos != cdev) {
- /* thermal cooling device not found */
+
+ if (!thermal_cooling_device_present(cdev)) {
mutex_unlock(&thermal_list_lock);
return;
}
+
list_del(&cdev->node);

/* Unbind all thermal zones associated with 'this' cdev */





2023-03-14 02:03:35

by Zhang, Rui

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] thermal: core: Introduce thermal_cooling_device_present()

On Mon, 2023-03-13 at 15:28 +0100, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <[email protected]>
>
> Introduce a helper function, thermal_cooling_device_present(), for
> checking if the given cooling device is in the list of registered
> cooling devices to avoid some code duplication in a subsequent
> patch.
>
> No expected functional impact.
>
> Signed-off-by: Rafael J. Wysocki <[email protected]>

Tested-by: Zhang Rui <[email protected]>
Reviewed-by: Zhang Rui <[email protected]>

thanks,
rui

> ---
>
> v1 -> v2: No changes
>
> ---
> drivers/thermal/thermal_core.c | 21 +++++++++++++++------
> 1 file changed, 15 insertions(+), 6 deletions(-)
>
> Index: linux-pm/drivers/thermal/thermal_core.c
> ===================================================================
> --- linux-pm.orig/drivers/thermal/thermal_core.c
> +++ linux-pm/drivers/thermal/thermal_core.c
> @@ -1045,6 +1045,18 @@ devm_thermal_of_cooling_device_register(
> }
> EXPORT_SYMBOL_GPL(devm_thermal_of_cooling_device_register);
>
> +static bool thermal_cooling_device_present(struct
> thermal_cooling_device *cdev)
> +{
> + struct thermal_cooling_device *pos = NULL;
> +
> + list_for_each_entry(pos, &thermal_cdev_list, node) {
> + if (pos == cdev)
> + return true;
> + }
> +
> + return false;
> +}
> +
> static void __unbind(struct thermal_zone_device *tz, int mask,
> struct thermal_cooling_device *cdev)
> {
> @@ -1067,20 +1079,17 @@ void thermal_cooling_device_unregister(s
> int i;
> const struct thermal_zone_params *tzp;
> struct thermal_zone_device *tz;
> - struct thermal_cooling_device *pos = NULL;
>
> if (!cdev)
> return;
>
> mutex_lock(&thermal_list_lock);
> - list_for_each_entry(pos, &thermal_cdev_list, node)
> - if (pos == cdev)
> - break;
> - if (pos != cdev) {
> - /* thermal cooling device not found */
> +
> + if (!thermal_cooling_device_present(cdev)) {
> mutex_unlock(&thermal_list_lock);
> return;
> }
> +
> list_del(&cdev->node);
>
> /* Unbind all thermal zones associated with 'this' cdev */
>
>
>