x86 clean up nmi panic messages From: Don Zickus 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: Don Zickus Signed-off-by: Andi Kleen --- Pavel, I hope this patch addresses your concerns. This will apply on top of my other patch. Cheers, Don > > Index: linux-don/arch/i386/kernel/traps.c > > =================================================================== > > --- linux-don.orig/arch/i386/kernel/traps.c > > +++ linux-don/arch/i386/kernel/traps.c > > @@ -602,6 +602,8 @@ static void mem_parity_error(unsigned ch > > "to continue\n"); > > printk(KERN_EMERG "You probably have a hardware problem with your RAM " > > "chips\n"); > > + if (panic_on_unrecovered_nmi) > > + panic("NMI: Not continuing"); > > > > /* Clear and disable the memory parity error line. */ > > clear_mem_error(reason); > > @@ -637,6 +639,10 @@ static void unknown_nmi_error(unsigned c > > reason, smp_processor_id()); > > printk("Dazed and confused, but trying to continue\n"); > > 'Trying to contninue' > > > printk("Do you have a strange power saving mode enabled?\n"); > > + > > + if (panic_on_unrecovered_nmi) > > + panic("NMI: Not continuing"); > > + > > 'not really'. Move printks around so it makes sense... --- arch/i386/kernel/traps.c | 15 ++++++++------- arch/x86_64/kernel/traps.c | 21 ++++++++++++++------- 2 files changed, 22 insertions(+), 14 deletions(-) Index: linux/arch/i386/kernel/traps.c =================================================================== --- linux.orig/arch/i386/kernel/traps.c +++ linux/arch/i386/kernel/traps.c @@ -634,13 +634,15 @@ gp_in_kernel: static void mem_parity_error(unsigned char reason, struct pt_regs * regs) { - printk(KERN_EMERG "Uhhuh. NMI received. Dazed and confused, but trying " - "to continue\n"); + printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on " + "CPU %d.\n", reason, smp_processor_id()); printk(KERN_EMERG "You probably have a hardware problem with your RAM " "chips\n"); if (panic_on_unrecovered_nmi) panic("NMI: Not continuing"); + printk(KERN_EMERG "Dazed and confused, but trying to continue\n"); + /* Clear and disable the memory parity error line. */ clear_mem_error(reason); } @@ -671,14 +673,13 @@ static void unknown_nmi_error(unsigned c return; } #endif - printk("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n", - reason, smp_processor_id()); - printk("Dazed and confused, but trying to continue\n"); - printk("Do you have a strange power saving mode enabled?\n"); - + printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on " + "CPU %d.\n", reason, smp_processor_id()); + printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n"); if (panic_on_unrecovered_nmi) panic("NMI: Not continuing"); + printk(KERN_EMERG "Dazed and confused, but trying to continue\n"); } static DEFINE_SPINLOCK(nmi_print_lock); Index: linux/arch/x86_64/kernel/traps.c =================================================================== --- linux.orig/arch/x86_64/kernel/traps.c +++ linux/arch/x86_64/kernel/traps.c @@ -666,10 +666,15 @@ asmlinkage void __kprobes do_general_pro static __kprobes void mem_parity_error(unsigned char reason, struct pt_regs * regs) { - printk("Uhhuh. NMI received. Dazed and confused, but trying to continue\n"); - printk("You probably have a hardware problem with your RAM chips\n"); + printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", + reason); + printk(KERN_EMERG "You probably have a hardware problem with your " + "RAM chips\n"); + 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. */ reason = (reason & 0xf) | 4; @@ -692,13 +697,15 @@ io_check_error(unsigned char reason, str static __kprobes void 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("Do you have a strange power saving mode enabled?\n"); +{ + printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n", + reason); + printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n"); 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.