thermal: core: Introduce thermal_cooling_device_present()
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 <rafael.j.wysocki@intel.com> Tested-by: Zhang Rui <rui.zhang@intel.com> Reviewed-by: Zhang Rui <rui.zhang@intel.com>
This commit is contained in:
parent
c0e0421a60
commit
c43198af05
@ -1045,6 +1045,18 @@ devm_thermal_of_cooling_device_register(struct device *dev,
|
||||
}
|
||||
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(struct thermal_cooling_device *cdev)
|
||||
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 */
|
||||
|
Loading…
Reference in New Issue
Block a user