diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2021-11-28 09:15:34 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2021-11-28 09:15:34 -0800 |
commit | 97891bbf38f71ec97199d2459368b5b4b700706e (patch) | |
tree | e0b924ce28227bde449517fc7dfe1afa83b0424c /kernel/cpu.c | |
parent | 1ed1d3a3da224d8d2d82ad4a1f769a472a603e62 (diff) | |
parent | dce1ca0525bfdc8a69a9343bc714fbc19a2f04b3 (diff) |
Merge tag 'sched-urgent-2021-11-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fix from Thomas Gleixner:
"A single scheduler fix to ensure that there is no stale KASAN shadow
state left on the idle task's stack when a CPU is brought up after it
was brought down before"
* tag 'sched-urgent-2021-11-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
sched/scs: Reset task stack state in bringup_cpu()
Diffstat (limited to 'kernel/cpu.c')
-rw-r--r-- | kernel/cpu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 192e43a87407..407a2568f35e 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -31,6 +31,7 @@ #include <linux/smpboot.h> #include <linux/relay.h> #include <linux/slab.h> +#include <linux/scs.h> #include <linux/percpu-rwsem.h> #include <linux/cpuset.h> @@ -588,6 +589,12 @@ static int bringup_cpu(unsigned int cpu) int ret; /* + * Reset stale stack state from the last time this CPU was online. + */ + scs_task_reset(idle); + kasan_unpoison_task_stack(idle); + + /* * Some architectures have to walk the irq descriptors to * setup the vector space for the cpu which comes online. * Prevent irq alloc/free across the bringup. |