mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
riscv: stack: Fixup independent softirq stack for CONFIG_FRAME_POINTER=n
The independent softirq stack uses s0 to save & restore sp, but s0 would
be corrupted when CONFIG_FRAME_POINTER=n. So add s0 in the clobber list
to fix the problem.
Fixes: dd69d07a5a
("riscv: stack: Support HAVE_SOFTIRQ_ON_OWN_STACK")
Cc: stable@vger.kernel.org
Reported-by: Zhangjin Wu <falcon@tinylab.org>
Signed-off-by: Guo Ren <guoren@linux.alibaba.com>
Signed-off-by: Guo Ren <guoren@kernel.org>
Tested-by: Drew Fustini <dfustini@baylibre.com>
Link: https://lore.kernel.org/r/20230716001506.3506041-3-guoren@kernel.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
8d0be64154
commit
ebc9cb03b2
1 changed files with 3 additions and 0 deletions
|
@ -84,6 +84,9 @@ void do_softirq_own_stack(void)
|
||||||
: [sp] "r" (sp)
|
: [sp] "r" (sp)
|
||||||
: "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7",
|
: "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7",
|
||||||
"t0", "t1", "t2", "t3", "t4", "t5", "t6",
|
"t0", "t1", "t2", "t3", "t4", "t5", "t6",
|
||||||
|
#ifndef CONFIG_FRAME_POINTER
|
||||||
|
"s0",
|
||||||
|
#endif
|
||||||
"memory");
|
"memory");
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue