|
@@ -20,6 +20,7 @@
|
|
|
#include <linux/spinlock.h>
|
|
|
#include <linux/kallsyms.h>
|
|
|
#include <linux/bootmem.h>
|
|
|
+#include <linux/interrupt.h>
|
|
|
|
|
|
#include <asm/bootinfo.h>
|
|
|
#include <asm/branch.h>
|
|
@@ -292,6 +293,16 @@ NORET_TYPE void ATTRIB_NORET die(const char * str, struct pt_regs * regs)
|
|
|
printk("%s[#%d]:\n", str, ++die_counter);
|
|
|
show_registers(regs);
|
|
|
spin_unlock_irq(&die_lock);
|
|
|
+
|
|
|
+ if (in_interrupt())
|
|
|
+ panic("Fatal exception in interrupt");
|
|
|
+
|
|
|
+ if (panic_on_oops) {
|
|
|
+ printk(KERN_EMERG "Fatal exception: panic in 5 seconds\n");
|
|
|
+ ssleep(5);
|
|
|
+ panic("Fatal exception");
|
|
|
+ }
|
|
|
+
|
|
|
do_exit(SIGSEGV);
|
|
|
}
|
|
|
|