ARM: perf: assign pdev pointer earlier for CPU PMUs
authorStephen Boyd <sboyd@codeaurora.org>
Fri, 7 Feb 2014 21:01:20 +0000 (21:01 +0000)
committerWill Deacon <will.deacon@arm.com>
Fri, 21 Feb 2014 11:10:52 +0000 (11:10 +0000)
We want to inspect the of_node that the pdev is pointing to in
the Krait CPU specific PMU initialization function. Assign it
earlier so that we don't crash with a NULL pointer dereference.

Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm/kernel/perf_event_cpu.c

index 6efd8aab15df93b9cdebceb167ea8b9f11faebaa..68d02ca0ca1b8eb2dbf3361546b8500dcfcee8b7 100644 (file)
@@ -311,6 +311,9 @@ static int cpu_pmu_device_probe(struct platform_device *pdev)
                return -ENOMEM;
        }
 
+       cpu_pmu = pmu;
+       cpu_pmu->plat_device = pdev;
+
        if (node && (of_id = of_match_node(cpu_pmu_of_device_ids, pdev->dev.of_node))) {
                init_fn = of_id->data;
                ret = init_fn(pmu);
@@ -323,8 +326,6 @@ static int cpu_pmu_device_probe(struct platform_device *pdev)
                goto out_free;
        }
 
-       cpu_pmu = pmu;
-       cpu_pmu->plat_device = pdev;
        cpu_pmu_init(cpu_pmu);
        ret = armpmu_register(cpu_pmu, PERF_TYPE_RAW);