Hi,

On 07/27/2016 04:20 AM, Peter Chen wrote:
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 <peter.c...@nxp.com>
---
  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)
                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)
        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" ?

Regards

alex

Reply via email to