diff --git a/kernel/smp.c b/kernel/smp.c index d0a5f693be91..3777430d9892 100644 --- a/kernel/smp.c +++ b/kernel/smp.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "smpboot.h" @@ -791,8 +792,8 @@ void wake_up_all_idle_cpus(void) for_each_online_cpu(cpu) { if (cpu == smp_processor_id()) continue; - - if (!cpu_isolated(cpu)) + if (s2idle_state == S2IDLE_STATE_ENTER || + !cpu_isolated(cpu)) wake_up_if_idle(cpu); } preempt_enable();