smp: Wake up all idle CPUs when suspending to idle

Regardless of CPU isolation or not, we need to wake up all the
CPUs during suspend to idle so that each CPU can disable their
local tick device, etc. If we don't wake every CPU up, then we
don't fully suspend the system and things like sched_clock and
timekeeping are never stopped properly.

Change-Id: Ic9141602acc5e6cddefca0727f9be075dad3e498
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
Stephen Boyd 2017-09-07 11:42:30 -07:00 committed by Gerrit - the friendly Code Review server
parent 9f5c2dd712
commit 3392af0694

View file

@ -19,6 +19,7 @@
#include <linux/sched.h>
#include <linux/sched/idle.h>
#include <linux/hypervisor.h>
#include <linux/suspend.h>
#include "smpboot.h"
@ -769,8 +770,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();