On Tue, Oct 19, 2021 at 03:22:43PM -0400, Qian Cai wrote: > > > On 10/19/21 11:50 AM, Peter Zijlstra wrote: > >>> diff --git a/kernel/smp.c b/kernel/smp.c > >>> index ad0b68a3a3d3..61ddc7a3bafa 100644 > >>> --- a/kernel/smp.c > >>> +++ b/kernel/smp.c > >>> @@ -1170,14 +1170,12 @@ void wake_up_all_idle_cpus(void) > >>> { > >>> int cpu; > >>> > >>> - cpus_read_lock(); > >>> - for_each_online_cpu(cpu) { > >>> - if (cpu == raw_smp_processor_id()) > >>> - continue; > >>> - > >>> - wake_up_if_idle(cpu); > >>> + for_each_cpu(cpu) { > >>> + preempt_disable(); > >>> + if (cpu != smp_processor_id() && cpu_online(cpu)) > >>> + wake_up_if_idle(cpu); > >>> + preempt_enable(); > >>> } > >>> - cpus_read_unlock(); > >>> } > >>> EXPORT_SYMBOL_GPL(wake_up_all_idle_cpus); > >> > >> This does not compile. > >> > >> kernel/smp.c:1173:18: error: macro "for_each_cpu" requires 2 arguments, but only 1 given > > > > Bah, for_each_possible_cpu(), lemme update the patch, I'm sure the > > robots will scream bloody murder on that too. > > This survived the regression tests here. Thanks!