diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2009-05-01 06:23:17 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-05-01 07:23:44 -0400 |
commit | 63a809a2dc53b91268dd915bbcbd425063893676 (patch) | |
tree | 5eafd0e921a7178f9e25695133863dde66f25de3 | |
parent | c33a0bc4e41ef169d6e807d8abb9502544b518e5 (diff) |
perf_counter: fix nmi-watchdog interaction
When we don't have any perf-counters active, don't act like we know
what the NMI is for.
[ Impact: fix hard hang with nmi_watchdog=2 ]
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
LKML-Reference: <20090501102533.109867793@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/kernel/cpu/perf_counter.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/perf_counter.c b/arch/x86/kernel/cpu/perf_counter.c index fc06f4d32644..d4c0cc9d3263 100644 --- a/arch/x86/kernel/cpu/perf_counter.c +++ b/arch/x86/kernel/cpu/perf_counter.c | |||
@@ -871,6 +871,9 @@ perf_counter_nmi_handler(struct notifier_block *self, | |||
871 | struct pt_regs *regs; | 871 | struct pt_regs *regs; |
872 | int ret; | 872 | int ret; |
873 | 873 | ||
874 | if (!atomic_read(&num_counters)) | ||
875 | return NOTIFY_DONE; | ||
876 | |||
874 | switch (cmd) { | 877 | switch (cmd) { |
875 | case DIE_NMI: | 878 | case DIE_NMI: |
876 | case DIE_NMI_IPI: | 879 | case DIE_NMI_IPI: |