aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/traps_64.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 11:37:01 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-18 11:37:01 -0400
commit9732b6112343df2872518ec6701c8ef729310a05 (patch)
tree9e3dcc461845038da4730c2062eee546348ca445 /arch/x86/kernel/traps_64.c
parent9e9abecfc0ff3a9ad2ead954b37bbfcb863c775e (diff)
parent1a9a3e76dde191f82f7a8a66059dcbb4a9f63ff3 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb
* git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-kgdb: kgdb: always use icache flush for sw breakpoints kgdb: fix SMP NMI kgdb_handle_exception exit race kgdb: documentation fixes kgdb: allow static kgdbts boot configuration kgdb: add documentation kgdb: Kconfig fix kgdb: add kgdb internal test suite kgdb: fix several kgdb regressions kgdb: kgdboc pl011 I/O module kgdb: fix optional arch functions and probe_kernel_* kgdb: add x86 HW breakpoints kgdb: print breakpoint removed on exception kgdb: clocksource watchdog kgdb: fix NMI hangs kgdb: fix kgdboc dynamic module configuration kgdb: document parameters x86: kgdb support consoles: polling support, kgdboc kgdb: core uaccess: add probe_kernel_write()
Diffstat (limited to 'arch/x86/kernel/traps_64.c')
-rw-r--r--arch/x86/kernel/traps_64.c9
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
603void __kprobes die_nmi(char *str, struct pt_regs *regs, int do_panic) 603void __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)
808static __kprobes void 813static __kprobes void
809unknown_nmi_error(unsigned char reason, struct pt_regs * regs) 814unknown_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");