aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/i386/kernel/traps.c15
-rw-r--r--arch/x86_64/kernel/traps.c21
2 files changed, 22 insertions, 14 deletions
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index 2f6cb8276480..3c85c89f68d8 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -631,13 +631,15 @@ gp_in_kernel:
631 631
632static void mem_parity_error(unsigned char reason, struct pt_regs * regs) 632static void mem_parity_error(unsigned char reason, struct pt_regs * regs)
633{ 633{
634 printk(KERN_EMERG "Uhhuh. NMI received. Dazed and confused, but trying " 634 printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on "
635 "to continue\n"); 635 "CPU %d.\n", reason, smp_processor_id());
636 printk(KERN_EMERG "You probably have a hardware problem with your RAM " 636 printk(KERN_EMERG "You probably have a hardware problem with your RAM "
637 "chips\n"); 637 "chips\n");
638 if (panic_on_unrecovered_nmi) 638 if (panic_on_unrecovered_nmi)
639 panic("NMI: Not continuing"); 639 panic("NMI: Not continuing");
640 640
641 printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
642
641 /* Clear and disable the memory parity error line. */ 643 /* Clear and disable the memory parity error line. */
642 clear_mem_error(reason); 644 clear_mem_error(reason);
643} 645}
@@ -668,14 +670,13 @@ static void unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
668 return; 670 return;
669 } 671 }
670#endif 672#endif
671 printk("Uhhuh. NMI received for unknown reason %02x on CPU %d.\n", 673 printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x on "
672 reason, smp_processor_id()); 674 "CPU %d.\n", reason, smp_processor_id());
673 printk("Dazed and confused, but trying to continue\n"); 675 printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n");
674 printk("Do you have a strange power saving mode enabled?\n");
675
676 if (panic_on_unrecovered_nmi) 676 if (panic_on_unrecovered_nmi)
677 panic("NMI: Not continuing"); 677 panic("NMI: Not continuing");
678 678
679 printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
679} 680}
680 681
681static DEFINE_SPINLOCK(nmi_print_lock); 682static DEFINE_SPINLOCK(nmi_print_lock);
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c
index b18829db2a6a..dae10df60926 100644
--- a/arch/x86_64/kernel/traps.c
+++ b/arch/x86_64/kernel/traps.c
@@ -730,10 +730,15 @@ asmlinkage void __kprobes do_general_protection(struct pt_regs * regs,
730static __kprobes void 730static __kprobes void
731mem_parity_error(unsigned char reason, struct pt_regs * regs) 731mem_parity_error(unsigned char reason, struct pt_regs * regs)
732{ 732{
733 printk("Uhhuh. NMI received. Dazed and confused, but trying to continue\n"); 733 printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
734 printk("You probably have a hardware problem with your RAM chips\n"); 734 reason);
735 printk(KERN_EMERG "You probably have a hardware problem with your "
736 "RAM chips\n");
737
735 if (panic_on_unrecovered_nmi) 738 if (panic_on_unrecovered_nmi)
736 panic("NMI: Not continuing"); 739 panic("NMI: Not continuing");
740
741 printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
737 742
738 /* Clear and disable the memory parity error line. */ 743 /* Clear and disable the memory parity error line. */
739 reason = (reason & 0xf) | 4; 744 reason = (reason & 0xf) | 4;
@@ -756,13 +761,15 @@ io_check_error(unsigned char reason, struct pt_regs * regs)
756 761
757static __kprobes void 762static __kprobes void
758unknown_nmi_error(unsigned char reason, struct pt_regs * regs) 763unknown_nmi_error(unsigned char reason, struct pt_regs * regs)
759{ printk("Uhhuh. NMI received for unknown reason %02x.\n", reason); 764{
760 printk("Dazed and confused, but trying to continue\n"); 765 printk(KERN_EMERG "Uhhuh. NMI received for unknown reason %02x.\n",
761 printk("Do you have a strange power saving mode enabled?\n"); 766 reason);
767 printk(KERN_EMERG "Do you have a strange power saving mode enabled?\n");
762 768
763 if (panic_on_unrecovered_nmi) 769 if (panic_on_unrecovered_nmi)
764 panic("NMI: Not continuing"); 770 panic("NMI: Not continuing");
765 771
772 printk(KERN_EMERG "Dazed and confused, but trying to continue\n");
766} 773}
767 774
768/* Runs on IST stack. This code must keep interrupts off all the time. 775/* Runs on IST stack. This code must keep interrupts off all the time.