drivers/perf/arm_smmuv3_pmu.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
From: Kang Chen <void0red@gmail.com>
devm_add_action may fails, add a warning when it happens.
Signed-off-by: Kang Chen <void0red@gmail.com>
---
drivers/perf/arm_smmuv3_pmu.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/perf/arm_smmuv3_pmu.c b/drivers/perf/arm_smmuv3_pmu.c
index 25a269d43..307bac904 100644
--- a/drivers/perf/arm_smmuv3_pmu.c
+++ b/drivers/perf/arm_smmuv3_pmu.c
@@ -724,7 +724,11 @@ static void smmu_pmu_setup_msi(struct smmu_pmu *pmu)
pmu->irq = msi_get_virq(dev, 0);
/* Add callback to free MSIs on teardown */
- devm_add_action(dev, smmu_pmu_free_msis, dev);
+ ret = devm_add_action(dev, smmu_pmu_free_msis, dev);
+ if (ret) {
+ dev_warn(dev, "failed to add callback to free MSIs on teardown\n");
+ return;
+ }
}
static int smmu_pmu_setup_irq(struct smmu_pmu *pmu)
--
2.34.1
On Mon, Feb 27, 2023 at 11:25:57AM +0800, void0red wrote: > From: Kang Chen <void0red@gmail.com> > > devm_add_action may fails, add a warning when it happens. > > Signed-off-by: Kang Chen <void0red@gmail.com> > --- > drivers/perf/arm_smmuv3_pmu.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/perf/arm_smmuv3_pmu.c b/drivers/perf/arm_smmuv3_pmu.c > index 25a269d43..307bac904 100644 > --- a/drivers/perf/arm_smmuv3_pmu.c > +++ b/drivers/perf/arm_smmuv3_pmu.c > @@ -724,7 +724,11 @@ static void smmu_pmu_setup_msi(struct smmu_pmu *pmu) > pmu->irq = msi_get_virq(dev, 0); > > /* Add callback to free MSIs on teardown */ > - devm_add_action(dev, smmu_pmu_free_msis, dev); > + ret = devm_add_action(dev, smmu_pmu_free_msis, dev); > + if (ret) { > + dev_warn(dev, "failed to add callback to free MSIs on teardown\n"); > + return; > + } I appreciate that you're following the existing error handling in this function, but I don't think this message is especially helpful. We'd be better off propagating the error and failing the probe in this case, I reckon. Will
© 2016 - 2025 Red Hat, Inc.