aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/perf
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2013-06-28 04:15:14 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2013-06-30 21:50:03 -0400
commit4ea355b5368bde0574c12430df53334c4be3bdcf (patch)
treea92aee5cfb16a4d48a6845cea84b55df7460fb63 /arch/powerpc/perf
parent0a48843d6c5114cfa4a9540ee4d6af87628cec01 (diff)
powerpc/perf: Don't enable if we have zero events
In power_pmu_enable() we still enable the PMU even if we have zero events. This should have no effect but doesn't make much sense. Instead just return after telling the hypervisor that we are not using the PMCs. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> CC: <stable@vger.kernel.org> [v3.10] Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/perf')
-rw-r--r--arch/powerpc/perf/core-book3s.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/powerpc/perf/core-book3s.c b/arch/powerpc/perf/core-book3s.c
index 1bb26d586e3c..c91dc43e04de 100644
--- a/arch/powerpc/perf/core-book3s.c
+++ b/arch/powerpc/perf/core-book3s.c
@@ -926,6 +926,11 @@ static void power_pmu_enable(struct pmu *pmu)
926 if (!cpuhw->disabled) 926 if (!cpuhw->disabled)
927 goto out; 927 goto out;
928 928
929 if (cpuhw->n_events == 0) {
930 ppc_set_pmu_inuse(0);
931 goto out;
932 }
933
929 cpuhw->disabled = 0; 934 cpuhw->disabled = 0;
930 935
931 /* 936 /*
@@ -937,8 +942,6 @@ static void power_pmu_enable(struct pmu *pmu)
937 if (!cpuhw->n_added) { 942 if (!cpuhw->n_added) {
938 mtspr(SPRN_MMCRA, cpuhw->mmcr[2] & ~MMCRA_SAMPLE_ENABLE); 943 mtspr(SPRN_MMCRA, cpuhw->mmcr[2] & ~MMCRA_SAMPLE_ENABLE);
939 mtspr(SPRN_MMCR1, cpuhw->mmcr[1]); 944 mtspr(SPRN_MMCR1, cpuhw->mmcr[1]);
940 if (cpuhw->n_events == 0)
941 ppc_set_pmu_inuse(0);
942 goto out_enable; 945 goto out_enable;
943 } 946 }
944 947