diff options
Diffstat (limited to 'arch/x86/kernel/traps_64.c')
-rw-r--r-- | arch/x86/kernel/traps_64.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/kernel/traps_64.c b/arch/x86/kernel/traps_64.c index 33292ac814f4..79aa6fc0815c 100644 --- a/arch/x86/kernel/traps_64.c +++ b/arch/x86/kernel/traps_64.c | |||
@@ -602,8 +602,13 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
602 | 602 | ||
603 | void __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic) | 603 | void __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic) |
604 | { | 604 | { |
605 | unsigned long flags = oops_begin(); | 605 | unsigned long flags; |
606 | 606 | ||
607 | if (notify_die(DIE_NMIWATCHDOG, str, regs, 0, 2, SIGINT) == | ||
608 | NOTIFY_STOP) | ||
609 | return; | ||
610 | |||
611 | flags = oops_begin(); | ||
607 | /* | 612 | /* |
608 | * We are in trouble anyway, lets at least try | 613 | * We are in trouble anyway, lets at least try |
609 | * to get a message out. | 614 | * to get a message out. |
@@ -808,6 +813,8 @@ io_check_error(unsigned char reason, struct pt_regs * regs) | |||
808 | static __kprobes void | 813 | static __kprobes void |
809 | unknown_nmi_error(unsigned char reason, struct pt_regs * regs) | 814 | unknown_nmi_error(unsigned char reason, struct pt_regs * regs) |
810 | { | 815 | { |
816 | if (notify_die(DIE_NMIUNKNOWN, "nmi", regs, reason, 2, SIGINT) == NOTIFY_STOP) | ||
817 | return; | ||
811 | printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", | 818 | printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", |
812 | reason); | 819 | reason); |
813 | printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n"); | 820 | printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n"); |