lkml.org 
[lkml]   [2021]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH] bcm: pm-arm: add missing of_node_put before break and return
Date
From: Wang Qing <wangqing@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@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
\
 
 \ /
  Last update: 2021-12-13 11:10    [W:0.039 / U:0.084 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site