diff mbox series

[1/3] perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors

Message ID 073d5e0d3ed1f040592cb47ca6fe3759f40cc7d1.1616774562.git.robin.murphy@arm.com (mailing list archive)
State New, archived
Headers show
Series [1/3] perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors | expand

Commit Message

Robin Murphy March 26, 2021, 4:02 p.m. UTC
By virtue of using platform_irq_get_optional() under the covers,
platform_irq_count() needs the target interrupt controller to be
available and may return -EPROBE_DEFER if it isn't. Let's use
dev_err_probe() to avoid a spurious error log (and help debug any
deferral issues) in that case.

Reported-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
 drivers/perf/arm_pmu_platform.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Will Deacon March 30, 2021, 11:18 a.m. UTC | #1
On Fri, 26 Mar 2021 16:02:40 +0000, Robin Murphy wrote:
> By virtue of using platform_irq_get_optional() under the covers,
> platform_irq_count() needs the target interrupt controller to be
> available and may return -EPROBE_DEFER if it isn't. Let's use
> dev_err_probe() to avoid a spurious error log (and help debug any
> deferral issues) in that case.

Applied to will (for-next/perf), thanks!

[1/3] perf/arm_pmu_platform: Use dev_err_probe() for IRQ errors
      https://git.kernel.org/will/c/11fa1dc8020a
[2/3] perf/arm_pmu_platform: Fix error handling
      https://git.kernel.org/will/c/e338cb6bef25
[3/3] perf/arm_pmu_platform: Clean up with dev_printk
      https://git.kernel.org/will/c/e20ac6c54a93

Cheers,
diff mbox series

Patch

diff --git a/drivers/perf/arm_pmu_platform.c b/drivers/perf/arm_pmu_platform.c
index 933bd8410fc2..bb6ae955083a 100644
--- a/drivers/perf/arm_pmu_platform.c
+++ b/drivers/perf/arm_pmu_platform.c
@@ -6,6 +6,7 @@ 
  * Copyright (C) 2010 ARM Ltd., Will Deacon <will.deacon@arm.com>
  */
 #define pr_fmt(fmt) "hw perfevents: " fmt
+#define dev_fmt pr_fmt
 
 #include <linux/bug.h>
 #include <linux/cpumask.h>
@@ -100,10 +101,8 @@  static int pmu_parse_irqs(struct arm_pmu *pmu)
 	struct pmu_hw_events __percpu *hw_events = pmu->hw_events;
 
 	num_irqs = platform_irq_count(pdev);
-	if (num_irqs < 0) {
-		pr_err("unable to count PMU IRQs\n");
-		return num_irqs;
-	}
+	if (num_irqs < 0)
+		return dev_err_probe(&pdev->dev, num_irqs, "unable to count PMU IRQs\n");
 
 	/*
 	 * In this case we have no idea which CPUs are covered by the PMU.