LoongArch: Return earlier in die() if notify_die() returns NOTIFY_STOP
authorTiezhu Yang <yangtiezhu@loongson.cn>
Fri, 25 Aug 2023 15:40:26 +0000 (23:40 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Fri, 25 Aug 2023 15:40:26 +0000 (23:40 +0800)
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>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kernel/traps.c

index dfb34cc..89699db 100644 (file)
@@ -404,6 +404,9 @@ void die(const char *str, struct pt_regs *regs)
 
        oops_exit();
 
+       if (ret == NOTIFY_STOP)
+               return;
+
        if (regs && kexec_should_crash(current))
                crash_kexec(regs);
 
@@ -413,8 +416,7 @@ void die(const char *str, struct pt_regs *regs)
        if (panic_on_oops)
                panic("Fatal exception");
 
-       if (ret != NOTIFY_STOP)
-               make_task_dead(SIGSEGV);
+       make_task_dead(SIGSEGV);
 }
 
 static inline void setup_vint_size(unsigned int size)