[PATCH] bcm: pm-arm: add missing of_node_put before break and return
From: Qing Wang <hidden>
Date: 2021-12-13 09:53:22
Also in:
lkml
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Wang Qing <redacted> 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 <redacted> --- 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
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel