arm: perf: krait: stop using singleton PMU
authorMark Rutland <mark.rutland@arm.com>
Wed, 21 May 2014 17:06:13 +0000 (18:06 +0100)
committerWill Deacon <will.deacon@arm.com>
Wed, 2 Jul 2014 14:48:26 +0000 (15:48 +0100)
Currently the krait_pmu_{enable,disable}_event functions use the global
cpu_pmu variable while all the other pmu enable/disable functions
derive this from the event argument.

This patch brings the Krait functions into line with the rest of the PMU
backends by deriving the address of the pmu from the event argument.

Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Tested-by: Christopher Covington <cov@codeaurora.org>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/perf_event_v7.c

index d4129bc06402df39149593b990766f8f7b855123..116758b77f930bace4b6c59b4ee0dcc71963690b 100644 (file)
@@ -1286,6 +1286,7 @@ static void krait_pmu_disable_event(struct perf_event *event)
        unsigned long flags;
        struct hw_perf_event *hwc = &event->hw;
        int idx = hwc->idx;
+       struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu);
        struct pmu_hw_events *events = cpu_pmu->get_hw_events();
 
        /* Disable counter and interrupt */
@@ -1311,6 +1312,7 @@ static void krait_pmu_enable_event(struct perf_event *event)
        unsigned long flags;
        struct hw_perf_event *hwc = &event->hw;
        int idx = hwc->idx;
+       struct arm_pmu *cpu_pmu = to_arm_pmu(event->pmu);
        struct pmu_hw_events *events = cpu_pmu->get_hw_events();
 
        /*