diff options
author | 2024-05-23 11:43:23 +0300 | |
---|---|---|
committer | 2024-05-30 09:42:51 -0700 | |
commit | a638b0461b58aa3205cd9d5f14d6f703d795b4af (patch) | |
tree | ce68ca8619c3314e4d30c0e2e0449cd474c2310d /tools/perf/scripts/python/export-to-postgresql.py | |
parent | Linux 6.10-rc1 (diff) | |
download | wireguard-linux-a638b0461b58aa3205cd9d5f14d6f703d795b4af.tar.xz wireguard-linux-a638b0461b58aa3205cd9d5f14d6f703d795b4af.zip |
riscv: prevent pt_regs corruption for secondary idle threads
Top of the kernel thread stack should be reserved for pt_regs. However
this is not the case for the idle threads of the secondary boot harts.
Their stacks overlap with their pt_regs, so both may get corrupted.
Similar issue has been fixed for the primary hart, see c7cdd96eca28
("riscv: prevent stack corruption by reserving task_pt_regs(p) early").
However that fix was not propagated to the secondary harts. The problem
has been noticed in some CPU hotplug tests with V enabled. The function
smp_callin stored several registers on stack, corrupting top of pt_regs
structure including status field. As a result, kernel attempted to save
or restore inexistent V context.
Fixes: 9a2451f18663 ("RISC-V: Avoid using per cpu array for ordered booting")
Fixes: 2875fe056156 ("RISC-V: Add cpu_ops and modify default booting method")
Signed-off-by: Sergey Matyukevich <sergey.matyukevich@syntacore.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240523084327.2013211-1-geomatsi@gmail.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Diffstat (limited to 'tools/perf/scripts/python/export-to-postgresql.py')
0 files changed, 0 insertions, 0 deletions