diff options
author | Don Zickus <dzickus@redhat.com> | 2010-02-05 21:47:05 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-02-08 02:29:03 -0500 |
commit | 84e478c6f1eb9c4bfa1fff2f8108e9a061b46428 (patch) | |
tree | 15be1e0d92d4439e49ecc98a504589dc596fc211 /arch | |
parent | 1fb9d6ad2766a1dd70d167552988375049a97f21 (diff) |
nmi_watchdog: Config option to enable new nmi_watchdog
These are the bits that enable the new nmi_watchdog and safely
isolate the old nmi_watchdog. Only one or the other can run,
not both at the same time.
Signed-off-by: Don Zickus <dzickus@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: gorcunov@gmail.com
Cc: aris@redhat.com
Cc: peterz@infradead.org
LKML-Reference: <1265424425-31562-4-git-send-email-dzickus@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/apic/Makefile | 7 | ||||
-rw-r--r-- | arch/x86/kernel/traps.c | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/arch/x86/kernel/apic/Makefile b/arch/x86/kernel/apic/Makefile index 565c1bfc507d..1a4512e48d24 100644 --- a/arch/x86/kernel/apic/Makefile +++ b/arch/x86/kernel/apic/Makefile | |||
@@ -2,7 +2,12 @@ | |||
2 | # Makefile for local APIC drivers and for the IO-APIC code | 2 | # Makefile for local APIC drivers and for the IO-APIC code |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_noop.o probe_$(BITS).o ipi.o nmi.o | 5 | obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_noop.o probe_$(BITS).o ipi.o |
6 | ifneq ($(CONFIG_NMI_WATCHDOG),y) | ||
7 | obj-$(CONFIG_X86_LOCAL_APIC) += nmi.o | ||
8 | endif | ||
9 | obj-$(CONFIG_NMI_WATCHDOG) += hw_nmi.o | ||
10 | |||
6 | obj-$(CONFIG_X86_IO_APIC) += io_apic.o | 11 | obj-$(CONFIG_X86_IO_APIC) += io_apic.o |
7 | obj-$(CONFIG_SMP) += ipi.o | 12 | obj-$(CONFIG_SMP) += ipi.o |
8 | 13 | ||
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c index 51ef893ffa65..973cbc4f044f 100644 --- a/arch/x86/kernel/traps.c +++ b/arch/x86/kernel/traps.c | |||
@@ -406,6 +406,7 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs) | |||
406 | == NOTIFY_STOP) | 406 | == NOTIFY_STOP) |
407 | return; | 407 | return; |
408 | 408 | ||
409 | #ifndef CONFIG_NMI_WATCHDOG | ||
409 | /* | 410 | /* |
410 | * Ok, so this is none of the documented NMI sources, | 411 | * Ok, so this is none of the documented NMI sources, |
411 | * so it must be the NMI watchdog. | 412 | * so it must be the NMI watchdog. |
@@ -413,6 +414,7 @@ static notrace __kprobes void default_do_nmi(struct pt_regs *regs) | |||
413 | if (nmi_watchdog_tick(regs, reason)) | 414 | if (nmi_watchdog_tick(regs, reason)) |
414 | return; | 415 | return; |
415 | if (!do_nmi_callback(regs, cpu)) | 416 | if (!do_nmi_callback(regs, cpu)) |
417 | #endif /* !CONFIG_NMI_WATCHDOG */ | ||
416 | unknown_nmi_error(reason, regs); | 418 | unknown_nmi_error(reason, regs); |
417 | #else | 419 | #else |
418 | unknown_nmi_error(reason, regs); | 420 | unknown_nmi_error(reason, regs); |