diff options
-rw-r--r-- | arch/x86/kernel/apic/Makefile | 4 | ||||
-rw-r--r-- | include/linux/nmi.h | 2 | ||||
-rw-r--r-- | kernel/watchdog.c | 7 |
3 files changed, 8 insertions, 5 deletions
diff --git a/arch/x86/kernel/apic/Makefile b/arch/x86/kernel/apic/Makefile index 52f32e0ea194..910f20b457c4 100644 --- a/arch/x86/kernel/apic/Makefile +++ b/arch/x86/kernel/apic/Makefile | |||
@@ -3,10 +3,10 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_noop.o probe_$(BITS).o ipi.o | 5 | obj-$(CONFIG_X86_LOCAL_APIC) += apic.o apic_noop.o probe_$(BITS).o ipi.o |
6 | ifneq ($(CONFIG_LOCKUP_DETECTOR),y) | 6 | ifneq ($(CONFIG_HARDLOCKUP_DETECTOR),y) |
7 | obj-$(CONFIG_X86_LOCAL_APIC) += nmi.o | 7 | obj-$(CONFIG_X86_LOCAL_APIC) += nmi.o |
8 | endif | 8 | endif |
9 | obj-$(CONFIG_LOCKUP_DETECTOR) += hw_nmi.o | 9 | obj-$(CONFIG_HARDLOCKUP_DETECTOR) += hw_nmi.o |
10 | 10 | ||
11 | obj-$(CONFIG_X86_IO_APIC) += io_apic.o | 11 | obj-$(CONFIG_X86_IO_APIC) += io_apic.o |
12 | obj-$(CONFIG_SMP) += ipi.o | 12 | obj-$(CONFIG_SMP) += ipi.o |
diff --git a/include/linux/nmi.h b/include/linux/nmi.h index abd48aacaf79..06aab5eee134 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h | |||
@@ -20,7 +20,7 @@ extern void touch_nmi_watchdog(void); | |||
20 | extern void acpi_nmi_disable(void); | 20 | extern void acpi_nmi_disable(void); |
21 | extern void acpi_nmi_enable(void); | 21 | extern void acpi_nmi_enable(void); |
22 | #else | 22 | #else |
23 | #ifndef CONFIG_LOCKUP_DETECTOR | 23 | #ifndef CONFIG_HARDLOCKUP_DETECTOR |
24 | static inline void touch_nmi_watchdog(void) | 24 | static inline void touch_nmi_watchdog(void) |
25 | { | 25 | { |
26 | touch_softlockup_watchdog(); | 26 | touch_softlockup_watchdog(); |
diff --git a/kernel/watchdog.c b/kernel/watchdog.c index 83fb63155cbc..e53622c1465e 100644 --- a/kernel/watchdog.c +++ b/kernel/watchdog.c | |||
@@ -31,13 +31,13 @@ int watchdog_enabled; | |||
31 | int __read_mostly softlockup_thresh = 60; | 31 | int __read_mostly softlockup_thresh = 60; |
32 | 32 | ||
33 | static DEFINE_PER_CPU(unsigned long, watchdog_touch_ts); | 33 | static DEFINE_PER_CPU(unsigned long, watchdog_touch_ts); |
34 | static DEFINE_PER_CPU(bool, watchdog_nmi_touch); | ||
35 | static DEFINE_PER_CPU(struct task_struct *, softlockup_watchdog); | 34 | static DEFINE_PER_CPU(struct task_struct *, softlockup_watchdog); |
36 | static DEFINE_PER_CPU(struct hrtimer, watchdog_hrtimer); | 35 | static DEFINE_PER_CPU(struct hrtimer, watchdog_hrtimer); |
37 | static DEFINE_PER_CPU(bool, softlockup_touch_sync); | 36 | static DEFINE_PER_CPU(bool, softlockup_touch_sync); |
38 | static DEFINE_PER_CPU(bool, hard_watchdog_warn); | ||
39 | static DEFINE_PER_CPU(bool, soft_watchdog_warn); | 37 | static DEFINE_PER_CPU(bool, soft_watchdog_warn); |
40 | #ifdef CONFIG_HARDLOCKUP_DETECTOR | 38 | #ifdef CONFIG_HARDLOCKUP_DETECTOR |
39 | static DEFINE_PER_CPU(bool, hard_watchdog_warn); | ||
40 | static DEFINE_PER_CPU(bool, watchdog_nmi_touch); | ||
41 | static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts); | 41 | static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts); |
42 | static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts_saved); | 42 | static DEFINE_PER_CPU(unsigned long, hrtimer_interrupts_saved); |
43 | static DEFINE_PER_CPU(struct perf_event *, watchdog_ev); | 43 | static DEFINE_PER_CPU(struct perf_event *, watchdog_ev); |
@@ -139,6 +139,7 @@ void touch_all_softlockup_watchdogs(void) | |||
139 | per_cpu(watchdog_touch_ts, cpu) = 0; | 139 | per_cpu(watchdog_touch_ts, cpu) = 0; |
140 | } | 140 | } |
141 | 141 | ||
142 | #ifdef CONFIG_HARDLOCKUP_DETECTOR | ||
142 | void touch_nmi_watchdog(void) | 143 | void touch_nmi_watchdog(void) |
143 | { | 144 | { |
144 | __get_cpu_var(watchdog_nmi_touch) = true; | 145 | __get_cpu_var(watchdog_nmi_touch) = true; |
@@ -146,6 +147,8 @@ void touch_nmi_watchdog(void) | |||
146 | } | 147 | } |
147 | EXPORT_SYMBOL(touch_nmi_watchdog); | 148 | EXPORT_SYMBOL(touch_nmi_watchdog); |
148 | 149 | ||
150 | #endif | ||
151 | |||
149 | void touch_softlockup_watchdog_sync(void) | 152 | void touch_softlockup_watchdog_sync(void) |
150 | { | 153 | { |
151 | __raw_get_cpu_var(softlockup_touch_sync) = true; | 154 | __raw_get_cpu_var(softlockup_touch_sync) = true; |