Thread (31 messages) 31 messages, 7 authors, 2016-08-01

RE: [PATCH 14/15] ethernet: stmicro: stmmac: stmmac_platform: add missing of_node_put after calling of_parse_phandle

From: Peter Chen <hidden>
Date: 2016-08-01 11:26:09

 
quoted
Hi,

On 07/27/2016 04:20 AM, Peter Chen wrote:
quoted
of_node_put needs to be called when the device node which is got from
of_parse_phandle has finished using.

Signed-off-by: Peter Chen <redacted>
---
  drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index f7dfc0a..8d88782 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -113,8 +113,10 @@ static struct stmmac_axi
*stmmac_axi_setup(struct
platform_device *pdev)
quoted
  		return NULL;

  	axi = kzalloc(sizeof(*axi), GFP_KERNEL);
-	if (!axi)
+	if (!axi) {
+		of_node_put(np);
  		return ERR_PTR(-ENOMEM);
+	}

  	axi->axi_lpi_en = of_property_read_bool(np, "snps,lpi_en");
  	axi->axi_xit_frm = of_property_read_bool(np, "snps,xit_frm"); @@
-127,6 +129,7 @@ static struct stmmac_axi *stmmac_axi_setup(struct
platform_device *pdev)
quoted
  	of_property_read_u32(np, "snps,wr_osr_lmt", &axi->axi_wr_osr_lmt);
  	of_property_read_u32(np, "snps,rd_osr_lmt", &axi->axi_rd_osr_lmt);
  	of_property_read_u32_array(np, "snps,blen", axi->axi_blen,
AXI_BLEN);
+	of_node_put(np);

  	return axi;
  }
I agree with the modification inside stmmac_axi. I just have a question
about np =
pdev->dev.of_node inside stmmac_probe_config_dt (same file).
We could add a "of_node_put(np)" just before "return plat" ?
Yes, you remind me there is still one node need to be put (should be plat->phy_node),
except for changing node name at error path, how about calling of_node_put(plat-
quoted
phy_node) at stmmac_release after phy is disconnected?
Since the plat->phy_node will be used during the whole life cycle, I put it at
stmmac_dvr_remove at my v2 patch set.

Best regards,
Peter
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help