aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2024-04-11 12:00:25 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2024-04-11 12:00:25 -0700
commit136eb5fd6a5d4e87f5c64a721b48b8a5da5351f3 (patch)
treee81847d54b5044f9ce8f422308da8b315f8eacb3 /kernel
parent2ae9a8972ce04046957f8af214509cebfd3bfb9c (diff)
parent3c89a068bfd0698a5478f4cf39493595ef757d5e (diff)
downloadlinux-136eb5fd6a5d4e87f5c64a721b48b8a5da5351f3.tar.gz
Merge tag 'pm-6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management fix from Rafael Wysocki: "Fix the suspend-to-idle core code to guarantee that timers queued on CPUs other than the one that has first left the idle state, which should expire directly after resume, will be handled (Anna-Maria Behnsen)" * tag 'pm-6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM: s2idle: Make sure CPUs will wakeup directly on resume
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/suspend.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index e3ae93bbcb9b50..09f8397bae15fb 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -106,6 +106,12 @@ static void s2idle_enter(void)
swait_event_exclusive(s2idle_wait_head,
s2idle_state == S2IDLE_STATE_WAKE);
+ /*
+ * Kick all CPUs to ensure that they resume their timers and restore
+ * consistent system state.
+ */
+ wake_up_all_idle_cpus();
+
cpus_read_unlock();
raw_spin_lock_irq(&s2idle_lock);