diff options
author | Andi Kleen <ak@suse.de> | 2006-09-26 04:52:27 -0400 |
---|---|---|
committer | Andi Kleen <andi@basil.nowhere.org> | 2006-09-26 04:52:27 -0400 |
commit | fac58550e80c307bf17cfa0dd544fca4eff120a5 (patch) | |
tree | 04eb287f3dd1bb2d7e9887e4d25073ca9794fa27 /arch/x86_64/kernel/traps.c | |
parent | 4038f901cf102a40715b900984ed7540a9fa637f (diff) |
[PATCH] Fix up panic messages for different NMI panics
When a unknown NMI happened the panic would claim a NMI watchdog timeout.
Also it would check the variable set by nmi_watchdog=panic and panic then.
Fix up the panic message to be generic
Unconditionally panic on unknown NMI when panic on unknown nmi is enabled.
Noticed by Jan Beulich
Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
Diffstat (limited to 'arch/x86_64/kernel/traps.c')
-rw-r--r-- | arch/x86_64/kernel/traps.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c index dae10df60926..96f62a033242 100644 --- a/arch/x86_64/kernel/traps.c +++ b/arch/x86_64/kernel/traps.c | |||
@@ -570,7 +570,7 @@ void die(const char * str, struct pt_regs * regs, long err) | |||
570 | do_exit(SIGSEGV); | 570 | do_exit(SIGSEGV); |
571 | } | 571 | } |
572 | 572 | ||
573 | void __kprobes die_nmi(char *str, struct pt_regs *regs) | 573 | void __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic) |
574 | { | 574 | { |
575 | unsigned long flags = oops_begin(); | 575 | unsigned long flags = oops_begin(); |
576 | 576 | ||
@@ -582,9 +582,8 @@ void __kprobes die_nmi(char *str, struct pt_regs *regs) | |||
582 | show_registers(regs); | 582 | show_registers(regs); |
583 | if (kexec_should_crash(current)) | 583 | if (kexec_should_crash(current)) |
584 | crash_kexec(regs); | 584 | crash_kexec(regs); |
585 | if (panic_on_timeout || panic_on_oops) | 585 | if (do_panic || panic_on_oops) |
586 | panic("nmi watchdog"); | 586 | panic("Non maskable interrupt"); |
587 | printk("console shuts up ...\n"); | ||
588 | oops_end(flags); | 587 | oops_end(flags); |
589 | nmi_exit(); | 588 | nmi_exit(); |
590 | local_irq_enable(); | 589 | local_irq_enable(); |