diff options
-rw-r--r-- | arch/arm/kernel/perf_event_cpu.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm/kernel/perf_event_cpu.c b/arch/arm/kernel/perf_event_cpu.c index 91c7ba182dcd..becf7ad6eddc 100644 --- a/arch/arm/kernel/perf_event_cpu.c +++ b/arch/arm/kernel/perf_event_cpu.c | |||
@@ -303,12 +303,17 @@ static int probe_current_pmu(struct arm_pmu *pmu) | |||
303 | 303 | ||
304 | static int of_pmu_irq_cfg(struct platform_device *pdev) | 304 | static int of_pmu_irq_cfg(struct platform_device *pdev) |
305 | { | 305 | { |
306 | int i; | 306 | int i, irq; |
307 | int *irqs = kcalloc(pdev->num_resources, sizeof(*irqs), GFP_KERNEL); | 307 | int *irqs = kcalloc(pdev->num_resources, sizeof(*irqs), GFP_KERNEL); |
308 | 308 | ||
309 | if (!irqs) | 309 | if (!irqs) |
310 | return -ENOMEM; | 310 | return -ENOMEM; |
311 | 311 | ||
312 | /* Don't bother with PPIs; they're already affine */ | ||
313 | irq = platform_get_irq(pdev, 0); | ||
314 | if (irq >= 0 && irq_is_percpu(irq)) | ||
315 | return 0; | ||
316 | |||
312 | for (i = 0; i < pdev->num_resources; ++i) { | 317 | for (i = 0; i < pdev->num_resources; ++i) { |
313 | struct device_node *dn; | 318 | struct device_node *dn; |
314 | int cpu; | 319 | int cpu; |