diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-04-11 12:00:25 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-04-11 12:00:25 -0700 |
commit | 136eb5fd6a5d4e87f5c64a721b48b8a5da5351f3 (patch) | |
tree | e81847d54b5044f9ce8f422308da8b315f8eacb3 /kernel | |
parent | 2ae9a8972ce04046957f8af214509cebfd3bfb9c (diff) | |
parent | 3c89a068bfd0698a5478f4cf39493595ef757d5e (diff) |
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.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index e3ae93bbcb9b..09f8397bae15 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); |