[PATCH] soc: qcom: geni: depopulate children on populate failure
From: Pengpeng Hou
Date: Mon Jun 15 2026 - 20:54:43 EST
devm_of_platform_populate() installs its devres cleanup action only after
of_platform_populate() succeeds. If child population fails after creating
some GENI children, those partial children are not automatically removed
by devres because the action was never added.
Depopulate the children explicitly when devm_of_platform_populate()
returns an error.
Signed-off-by: Pengpeng Hou <pengpeng@xxxxxxxxxxx>
---
drivers/soc/qcom/qcom-geni-se.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/qcom/qcom-geni-se.c b/drivers/soc/qcom/qcom-geni-se.c
index cd1779b6a91a..46dd7b7a8f90 100644
--- a/drivers/soc/qcom/qcom-geni-se.c
+++ b/drivers/soc/qcom/qcom-geni-se.c
@@ -1406,7 +1406,11 @@ static int geni_se_probe(struct platform_device *pdev)
dev_set_drvdata(dev, wrapper);
dev_dbg(dev, "GENI SE Driver probed\n");
- return devm_of_platform_populate(dev);
+ ret = devm_of_platform_populate(dev);
+ if (ret)
+ of_platform_depopulate(dev);
+
+ return ret;
}
static const char * const qup_clks[] = {
--
2.50.1 (Apple Git-155)