mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 14:42:24 +00:00
thermal: core: Clean up thermal_list_lock locking
Once thermal_list_lock has been acquired in __thermal_cooling_device_register(), it is not necessary to drop it and take it again until all of the thermal zones have been updated, so change the code accordingly. No expected functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
parent
0c7d069297
commit
cd246fa969
@ -826,8 +826,6 @@ static void bind_cdev(struct thermal_cooling_device *cdev)
|
||||
const struct thermal_zone_params *tzp;
|
||||
struct thermal_zone_device *pos = NULL;
|
||||
|
||||
mutex_lock(&thermal_list_lock);
|
||||
|
||||
list_for_each_entry(pos, &thermal_tz_list, node) {
|
||||
if (!pos->tzp && !pos->ops->bind)
|
||||
continue;
|
||||
@ -854,8 +852,6 @@ static void bind_cdev(struct thermal_cooling_device *cdev)
|
||||
tzp->tbp[i].weight);
|
||||
}
|
||||
}
|
||||
|
||||
mutex_unlock(&thermal_list_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -933,17 +929,17 @@ __thermal_cooling_device_register(struct device_node *np,
|
||||
|
||||
/* Add 'this' new cdev to the global cdev list */
|
||||
mutex_lock(&thermal_list_lock);
|
||||
|
||||
list_add(&cdev->node, &thermal_cdev_list);
|
||||
mutex_unlock(&thermal_list_lock);
|
||||
|
||||
/* Update binding information for 'this' new cdev */
|
||||
bind_cdev(cdev);
|
||||
|
||||
mutex_lock(&thermal_list_lock);
|
||||
list_for_each_entry(pos, &thermal_tz_list, node)
|
||||
if (atomic_cmpxchg(&pos->need_update, 1, 0))
|
||||
thermal_zone_device_update(pos,
|
||||
THERMAL_EVENT_UNSPECIFIED);
|
||||
|
||||
mutex_unlock(&thermal_list_lock);
|
||||
|
||||
return cdev;
|
||||
|
Loading…
Reference in New Issue
Block a user