lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 11 Oct 2022 21:38:22 +0800 From: Qibo Huang <huangqibo.tech@...il.com> To: rafael@...nel.org Cc: daniel.lezcano@...aro.org, amitk@...nel.org, linux-pm@...r.kernel.org, linux-kernel@...r.kernel.org, rui.zhang@...el.com, Qibo Huang <huangqibo.tech@...il.com> Subject: [PATCH 2/2] thermal/governors: Fix cooling device setting cooling state failure Because the __thermal_cdev_update function traverses the cooling_device->thermal_instances list to obtain the maximum target state, and then the cooling device sets the maximum cooling state. However, the power_actor_set_power function only updates the target value of thermal_zone->thermal_instances to the target state, and does not update the target value of cooling_device->thermal_instances, resulting in the target being 0 all the time. Signed-off-by: Qibo Huang <huangqibo.tech@...il.com> --- drivers/thermal/gov_power_allocator.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/thermal/gov_power_allocator.c b/drivers/thermal/gov_power_allocator.c index 2d1aeaba38a8..1db697d93fa2 100644 --- a/drivers/thermal/gov_power_allocator.c +++ b/drivers/thermal/gov_power_allocator.c @@ -293,6 +293,7 @@ power_actor_set_power(struct thermal_cooling_device *cdev, struct thermal_instance *instance, u32 power) { unsigned long state; + struct thermal_instance *cdev_instance; int ret; ret = cdev->ops->power2state(cdev, power, &state); @@ -300,6 +301,11 @@ power_actor_set_power(struct thermal_cooling_device *cdev, return ret; instance->target = clamp_val(state, instance->lower, instance->upper); + list_for_each_entry(cdev_instance, &cdev->thermal_instances, cdev_node){ + if(cdev_instance->tz->id == instance->tz->id){ + cdev_instance->target = state; + } + } mutex_lock(&cdev->lock); __thermal_cdev_update(cdev); mutex_unlock(&cdev->lock); -- 2.37.1
Powered by blists - more mailing lists