aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arm64/kernel/perf_event.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/arm64/kernel/perf_event.c b/arch/arm64/kernel/perf_event.c
index 195991dadc37..2a9cbcb61126 100644
--- a/arch/arm64/kernel/perf_event.c
+++ b/arch/arm64/kernel/perf_event.c
@@ -1310,7 +1310,7 @@ static const struct of_device_id armpmu_of_device_ids[] = {
1310 1310
1311static int armpmu_device_probe(struct platform_device *pdev) 1311static int armpmu_device_probe(struct platform_device *pdev)
1312{ 1312{
1313 int i, *irqs; 1313 int i, irq, *irqs;
1314 1314
1315 if (!cpu_pmu) 1315 if (!cpu_pmu)
1316 return -ENODEV; 1316 return -ENODEV;
@@ -1319,6 +1319,11 @@ static int armpmu_device_probe(struct platform_device *pdev)
1319 if (!irqs) 1319 if (!irqs)
1320 return -ENOMEM; 1320 return -ENOMEM;
1321 1321
1322 /* Don't bother with PPIs; they're already affine */
1323 irq = platform_get_irq(pdev, 0);
1324 if (irq >= 0 && irq_is_percpu(irq))
1325 return 0;
1326
1322 for (i = 0; i < pdev->num_resources; ++i) { 1327 for (i = 0; i < pdev->num_resources; ++i) {
1323 struct device_node *dn; 1328 struct device_node *dn;
1324 int cpu; 1329 int cpu;