Commit 4bb7f6c2 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

thermal: intel_powerclamp: Use first online CPU as control_cpu

Commit 68b99e94 ("thermal: intel_powerclamp: Use get_cpu() instead
of smp_processor_id() to avoid crash") fixed an issue related to using
smp_processor_id() in preemptible context by replacing it with a pair
of get_cpu()/put_cpu(), but what is needed there really is any online
CPU and not necessarily the one currently running the code.  Arguably,
getting the one that's running the code in there is confusing.

For this reason, simply give the control CPU role to the first online
one which automatically will be CPU0 if it is online, so one check
can be dropped from the code for an added benefit.

Link: https://lore.kernel.org/linux-pm/20221011113646.GA12080@duo.ucw.cz/
Fixes: 68b99e94 ("thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash")
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: default avatarChen Yu <yu.c.chen@intel.com>
parent aa512c11
...@@ -516,11 +516,7 @@ static int start_power_clamp(void) ...@@ -516,11 +516,7 @@ static int start_power_clamp(void)
cpus_read_lock(); cpus_read_lock();
/* prefer BSP */ /* prefer BSP */
control_cpu = 0; control_cpu = cpumask_first(cpu_online_mask);
if (!cpu_online(control_cpu)) {
control_cpu = get_cpu();
put_cpu();
}
clamping = true; clamping = true;
schedule_delayed_work(&poll_pkg_cstate_work, 0); schedule_delayed_work(&poll_pkg_cstate_work, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment