Messages in this thread | | | From | Huacai Chen <> | Date | Sun, 20 Aug 2023 16:53:14 +0800 | Subject | Re: [PATCH v4 3/4] MIPS: Return earlier in die() if notify_die() returns NOTIFY_STOP |
| |
Hi, Tiezhu,
On Sun, Aug 20, 2023 at 7:21 AM Tiezhu Yang <yangtiezhu@loongson.cn> wrote: > > After the call to oops_exit(), it should not panic or execute > the crash kernel if the oops is to be suppressed. > > Suggested-by: Maciej W. Rozycki <macro@orcam.me.uk> > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> > --- > arch/mips/kernel/traps.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c > index 8e528a8..fd770dc 100644 > --- a/arch/mips/kernel/traps.c > +++ b/arch/mips/kernel/traps.c > @@ -412,6 +412,9 @@ void die(const char *str, struct pt_regs *regs) > > oops_exit(); > > + if (ret == NOTIFY_STOP) > + return; > + > if (in_interrupt()) > panic("Fatal exception in interrupt"); > > @@ -421,8 +424,7 @@ void die(const char *str, struct pt_regs *regs) > if (regs && kexec_should_crash(current)) > crash_kexec(regs); > > - if (ret != NOTIFY_STOP) > - make_task_dead(SIGSEGV); > + make_task_dead(SIGSEGV); Then you call make_task_dead() at the end unconditionally, and die() becomes a noreturn function again.
Huacai > } > > extern struct exception_table_entry __start___dbe_table[]; > -- > 2.1.0 >
| |