|
@@ -208,6 +208,12 @@ static void oops_end(unsigned long flags, struct pt_regs *regs,
|
|
|
}
|
|
|
raw_local_irq_restore(flags);
|
|
|
|
|
|
+ /*
|
|
|
+ * system_reset_excption handles debugger, crash dump, panic, for 0x100
|
|
|
+ */
|
|
|
+ if (TRAP(regs) == 0x100)
|
|
|
+ return;
|
|
|
+
|
|
|
crash_fadump(regs, "die oops");
|
|
|
|
|
|
if (kexec_should_crash(current))
|
|
@@ -272,8 +278,13 @@ void die(const char *str, struct pt_regs *regs, long err)
|
|
|
{
|
|
|
unsigned long flags;
|
|
|
|
|
|
- if (debugger(regs))
|
|
|
- return;
|
|
|
+ /*
|
|
|
+ * system_reset_excption handles debugger, crash dump, panic, for 0x100
|
|
|
+ */
|
|
|
+ if (TRAP(regs) != 0x100) {
|
|
|
+ if (debugger(regs))
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
flags = oops_begin(regs);
|
|
|
if (__die(str, regs, err))
|