On Thu, Oct 17, 2019 at 11:07 PM Christoph Hellwig <h...@lst.de> wrote: > > If we always compile the get_break_insn_length inline function we can > remove the ifdefs and let dead code elimination take care of the warn > branch that is now unreadable because the report_bug stub always > returns BUG_TRAP_TYPE_BUG. > > Signed-off-by: Christoph Hellwig <h...@lst.de> > --- > arch/riscv/kernel/traps.c | 26 ++++++-------------------- > 1 file changed, 6 insertions(+), 20 deletions(-) > > diff --git a/arch/riscv/kernel/traps.c b/arch/riscv/kernel/traps.c > index 1ac75f7d0bff..10a17e545f43 100644 > --- a/arch/riscv/kernel/traps.c > +++ b/arch/riscv/kernel/traps.c > @@ -111,7 +111,6 @@ DO_ERROR_INFO(do_trap_ecall_s, > DO_ERROR_INFO(do_trap_ecall_m, > SIGILL, ILL_ILLTRP, "environment call from M-mode"); > > -#ifdef CONFIG_GENERIC_BUG > static inline unsigned long get_break_insn_length(unsigned long pc) > { > bug_insn_t insn; > @@ -120,28 +119,15 @@ static inline unsigned long > get_break_insn_length(unsigned long pc) > return 0; > return (((insn & __INSN_LENGTH_MASK) == __INSN_LENGTH_32) ? 4UL : > 2UL); > } > -#endif /* CONFIG_GENERIC_BUG */ > > asmlinkage void do_trap_break(struct pt_regs *regs) > { > - if (user_mode(regs)) { > - force_sig_fault(SIGTRAP, TRAP_BRKPT, > - (void __user *)(regs->sepc)); > - return; > - } > -#ifdef CONFIG_GENERIC_BUG > - { > - enum bug_trap_type type; > - > - type = report_bug(regs->sepc, regs); > - if (type == BUG_TRAP_TYPE_WARN) { > - regs->sepc += get_break_insn_length(regs->sepc); > - return; > - } > - } > -#endif /* CONFIG_GENERIC_BUG */ > - > - die(regs, "Kernel BUG"); > + if (user_mode(regs)) > + force_sig_fault(SIGTRAP, TRAP_BRKPT, (void __user > *)regs->sepc); > + else if (report_bug(regs->sepc, regs) == BUG_TRAP_TYPE_WARN) > + regs->sepc += get_break_insn_length(regs->sepc); > + else > + die(regs, "Kernel BUG"); > } > > #ifdef CONFIG_GENERIC_BUG > -- > 2.20.1 > > > _______________________________________________ > linux-riscv mailing list > linux-ri...@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
LGTM. Reviewed-by: Anup Patel <a...@brainfault.org> Regards, Anup