[PATCH] perf: qcom_l2_pmu: Make l2_cache_pmu_probe_cluster() more robust
Christophe JAILLET
christophe.jaillet at wanadoo.fr
Thu May 18 01:18:08 PDT 2023
If an error occurs after calling list_add(), the &l2cache_pmu->clusters
list will reference some memory that will be freed when the managed
resources will be released.
Move the list_add() at the end of the function when everything is in fine.
This is harmless because if l2_cache_pmu_probe_cluster() fails, then
l2_cache_pmu_probe() will fail as well and 'l2cache_pmu' will be released
as well.
But it looks cleaner and could silence static checker warning.
Signed-off-by: Christophe JAILLET <christophe.jaillet at wanadoo.fr>
---
This is not a fix, because there is no issue.
But in case of interest:
Fixes: 21bdbb7102ed ("perf: add qcom l2 cache perf events driver")
---
drivers/perf/qcom_l2_pmu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/perf/qcom_l2_pmu.c b/drivers/perf/qcom_l2_pmu.c
index aaca6db7d8f6..3f9a98c17a89 100644
--- a/drivers/perf/qcom_l2_pmu.c
+++ b/drivers/perf/qcom_l2_pmu.c
@@ -857,7 +857,6 @@ static int l2_cache_pmu_probe_cluster(struct device *dev, void *data)
return -ENOMEM;
INIT_LIST_HEAD(&cluster->next);
- list_add(&cluster->next, &l2cache_pmu->clusters);
cluster->cluster_id = fw_cluster_id;
irq = platform_get_irq(sdev, 0);
@@ -883,6 +882,7 @@ static int l2_cache_pmu_probe_cluster(struct device *dev, void *data)
spin_lock_init(&cluster->pmu_lock);
+ list_add(&cluster->next, &l2cache_pmu->clusters);
l2cache_pmu->num_pmus++;
return 0;
--
2.34.1
More information about the linux-arm-kernel
mailing list