Commit c41c5cd3 authored by Don Zickus's avatar Don Zickus Committed by Andi Kleen

[PATCH] x86: x86 clean up nmi panic messages

Clean up some of the output messages on the nmi error paths to make more
sense when they are displayed.  This is mainly a cosmetic fix and
shouldn't impact any normal code path.
Signed-off-by: default avatarDon Zickus <dzickus@redhat.com>
Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent 8da5adda
...@@ -631,13 +631,15 @@ gp_in_kernel: ...@@ -631,13 +631,15 @@ gp_in_kernel:
static void mem_parity_error(unsigned char reason, struct pt_regs * regs) static void mem_parity_error(unsigned char reason, struct pt_regs * regs)
{ {
printk(KERN_EMERG "Uhhuh. NMI received. Dazed and confused, but trying " printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on "
"to continue\n"); "CPU %d.\n", reason, smp_processor_id());
printk(KERN_EMERG "You probably have a hardware problem with your RAM " printk(KERN_EMERG "You probably have a hardware problem with your RAM "
"chips\n"); "chips\n");
if (panic_on_unrecovered_nmi) if (panic_on_unrecovered_nmi)
panic("NMI: Not continuing"); panic("NMI: Not continuing");
printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
/* Clear and disable the memory parity error line. */ /* Clear and disable the memory parity error line. */
clear_mem_error(reason); clear_mem_error(reason);
} }
...@@ -668,14 +670,13 @@ static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs) ...@@ -668,14 +670,13 @@ static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
return; return;
} }
#endif #endif
printk("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n", printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on "
reason, smp_processor_id()); "CPU %d.\n", reason, smp_processor_id());
printk("Dazed and confused, but trying to continue\n"); printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n");
printk("Do you have a strange power saving mode enabled?\n");
if (panic_on_unrecovered_nmi) if (panic_on_unrecovered_nmi)
panic("NMI: Not continuing"); panic("NMI: Not continuing");
printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
} }
static DEFINE_SPINLOCK(nmi_print_lock); static DEFINE_SPINLOCK(nmi_print_lock);
......
...@@ -730,11 +730,16 @@ asmlinkage void __kprobes do_general_protection(struct pt_regs * regs, ...@@ -730,11 +730,16 @@ asmlinkage void __kprobes do_general_protection(struct pt_regs * regs,
static __kprobes void static __kprobes void
mem_parity_error(unsigned char reason, struct pt_regs * regs) mem_parity_error(unsigned char reason, struct pt_regs * regs)
{ {
printk("Uhhuh. NMI received. Dazed and confused, but trying to continue\n"); printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
printk("You probably have a hardware problem with your RAM chips\n"); reason);
printk(KERN_EMERG "You probably have a hardware problem with your "
"RAM chips\n");
if (panic_on_unrecovered_nmi) if (panic_on_unrecovered_nmi)
panic("NMI: Not continuing"); panic("NMI: Not continuing");
printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
/* Clear and disable the memory parity error line. */ /* Clear and disable the memory parity error line. */
reason = (reason & 0xf) | 4; reason = (reason & 0xf) | 4;
outb(reason, 0x61); outb(reason, 0x61);
...@@ -756,13 +761,15 @@ io_check_error(unsigned char reason, struct pt_regs * regs) ...@@ -756,13 +761,15 @@ io_check_error(unsigned char reason, struct pt_regs * regs)
static __kprobes void static __kprobes void
unknown_nmi_error(unsigned char reason, struct pt_regs * regs) unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
{ printk("Uhhuh. NMI received for unknown reason %02x.\n", reason); {
printk("Dazed and confused, but trying to continue\n"); printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
printk("Do you have a strange power saving mode enabled?\n"); reason);
printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n");
if (panic_on_unrecovered_nmi) if (panic_on_unrecovered_nmi)
panic("NMI: Not continuing"); panic("NMI: Not continuing");
printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
} }
/* Runs on IST stack. This code must keep interrupts off all the time. /* Runs on IST stack. This code must keep interrupts off all the time.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment