Skip to content

Commit 4bb7f6c

Browse files
committed
thermal: intel_powerclamp: Use first online CPU as control_cpu
Commit 68b99e9 ("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/[email protected]/ Fixes: 68b99e9 ("thermal: intel_powerclamp: Use get_cpu() instead of smp_processor_id() to avoid crash") Signed-off-by: Rafael J. Wysocki <[email protected]> Reviewed-by: Chen Yu <[email protected]>
1 parent aa512c1 commit 4bb7f6c

File tree

1 file changed

+1
-5
lines changed

1 file changed

+1
-5
lines changed

drivers/thermal/intel/intel_powerclamp.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -516,11 +516,7 @@ static int start_power_clamp(void)
516516
cpus_read_lock();
517517

518518
/* prefer BSP */
519-
control_cpu = 0;
520-
if (!cpu_online(control_cpu)) {
521-
control_cpu = get_cpu();
522-
put_cpu();
523-
}
519+
control_cpu = cpumask_first(cpu_online_mask);
524520

525521
clamping = true;
526522
schedule_delayed_work(&poll_pkg_cstate_work, 0);

0 commit comments

Comments
 (0)