[PATCH] bcm: pm-arm: add missing of_node_put before break and return
Qing Wang
wangqing at vivo.com
Mon Dec 13 01:45:08 PST 2021
From: Wang Qing <wangqing at vivo.com>
Fix following coccicheck warning:
WARNING: Function "for_each_matching_node"
should have of_node_put() before return.
Early exits from for_each_matching_node should decrement the
node reference counter.
Signed-off-by: Wang Qing <wangqing at vivo.com>
---
drivers/soc/bcm/brcmstb/pm/pm-arm.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/soc/bcm/brcmstb/pm/pm-arm.c b/drivers/soc/bcm/brcmstb/pm/pm-arm.c
index 3cbb165..caec114
--- a/drivers/soc/bcm/brcmstb/pm/pm-arm.c
+++ b/drivers/soc/bcm/brcmstb/pm/pm-arm.c
@@ -731,15 +731,19 @@ static int brcmstb_pm_probe(struct platform_device *pdev)
for_each_matching_node(dn, ddr_shimphy_dt_ids) {
i = ctrl.num_memc;
if (i >= MAX_NUM_MEMC) {
+ of_node_put(dn);
pr_warn("too many MEMCs (max %d)\n", MAX_NUM_MEMC);
break;
}
base = of_io_request_and_map(dn, 0, dn->full_name);
if (IS_ERR(base)) {
- if (!ctrl.support_warm_boot)
+ if (!ctrl.support_warm_boot) {
+ of_node_put(dn);
break;
+ }
+ of_node_put(dn);
pr_err("error mapping DDR SHIMPHY %d\n", i);
return PTR_ERR(base);
}
@@ -752,6 +756,7 @@ static int brcmstb_pm_probe(struct platform_device *pdev)
for_each_matching_node(dn, brcmstb_memc_of_match) {
base = of_iomap(dn, 0);
if (!base) {
+ of_node_put(dn);
pr_err("error mapping DDR Sequencer %d\n", i);
return -ENOMEM;
}
@@ -759,6 +764,7 @@ static int brcmstb_pm_probe(struct platform_device *pdev)
of_id = of_match_node(brcmstb_memc_of_match, dn);
if (!of_id) {
iounmap(base);
+ of_node_put(dn);
return -EINVAL;
}
--
2.7.4
More information about the linux-arm-kernel
mailing list