summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/perf_counter.c
diff options
context:
space:
mode:
authorPeter Zijlstra2009-05-01 12:23:17 +0200
committerIngo Molnar2009-05-01 13:23:44 +0200
commit63a809a2dc53b91268dd915bbcbd425063893676 (patch)
tree5eafd0e921a7178f9e25695133863dde66f25de3 /arch/x86/kernel/cpu/perf_counter.c
parentperf_counter: fix race in perf_output_* (diff)
downloadkernel-qcow2-linux-63a809a2dc53b91268dd915bbcbd425063893676.tar.gz
kernel-qcow2-linux-63a809a2dc53b91268dd915bbcbd425063893676.tar.xz
kernel-qcow2-linux-63a809a2dc53b91268dd915bbcbd425063893676.zip
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>
Diffstat (limited to 'arch/x86/kernel/cpu/perf_counter.c')
-rw-r--r--arch/x86/kernel/cpu/perf_counter.c3
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,
struct pt_regs *regs;
int ret;
+ if (!atomic_read(&num_counters))
+ return NOTIFY_DONE;
+
switch (cmd) {
case DIE_NMI:
case DIE_NMI_IPI: