Messages in this thread | | | From | Rémi Denis-Courmont <> | Subject | Re: [PATCH V2 1/2] riscv: stack: Fixup independent irq stack for CONFIG_FRAME_POINTER=n | Date | Sun, 16 Jul 2023 11:14:40 +0300 |
| |
Le sunnuntaina 16. heinäkuuta 2023, 3.15.05 EEST guoren@kernel.org a écrit : > From: Guo Ren <guoren@linux.alibaba.com> > > The independent irq 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.
Isn't it *always* corrupted? Shouldn't the clobber be always there? Am I guessing that the compiler whine that you can't mark the frame pointer as clobbered? If so, it would be worth mentioning in the commit log, IMO.
> Fixes: 163e76cc6ef4 ("riscv: stack: Support HAVE_IRQ_EXIT_ON_IRQ_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> > --- > arch/riscv/kernel/traps.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/riscv/kernel/traps.c b/arch/riscv/kernel/traps.c > index f910dfccbf5d..927347a19847 100644 > --- a/arch/riscv/kernel/traps.c > +++ b/arch/riscv/kernel/traps.c > @@ -372,6 +372,9 @@ asmlinkage void noinstr do_irq(struct pt_regs *regs) > > : [sp] "r" (sp), [regs] "r" (regs) > : "a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", > > "t0", "t1", "t2", "t3", "t4", "t5", "t6", > +#ifndef CONFIG_FRAME_POINTER > + "s0", > +#endif > "memory"); > } else > #endif
-- レミ・デニ-クールモン http://www.remlab.net/
| |