From: Peter Chen <hidden> Date: 2016-08-01 07:11:33
Hi David,
This patch set fixes missing of_node_put issue at ethernet driver.
of_node_put needs to be called when the device node which is got
from of_parse_phandle has finished using.
The compilation test has passed by using allmodconfig for drivers/net/ethernet.
Thanks.
Changes for v2:
- If the device node is local variable, it can be put in the same function.
- If the device node will be used the whole driver life cycle,
it should be put (call of_node_put) at driver's remove.
Patch [4, 5, 9, 14, 15/15]
- Fix the issue that the node still be used at error patch [6/15]
- Add acked for patch [11,12/15]
Peter Chen (15):
ethernet: altera: add missing of_node_put
ethernet: apm: xgene: add missing of_node_put after calling
of_parse_phandle
ethernet: arc: emac_main: add missing of_node_put after calling
of_parse_phandle
ethernet: aurora: nb8800: add missing of_node_put after calling
of_parse_phandle
ethernet: cavium: octeon: add missing of_node_put after calling
of_parse_phandle
ethernet: hisilicon: hns: hns_dsaf_mac: add missing of_node_put after
calling of_parse_phandle
ethernet: hisilicon: hns: hns_dsaf_main: add missing of_node_put after
calling of_parse_phandle
ethernet: marvell: mvneta: add missing of_node_put after calling
of_parse_phandle
ethernet: marvell: mvpp2: add missing of_node_put after calling
of_parse_phandle
ethernet: marvell: pxa168_eth: add missing of_node_put after calling
of_parse_phandle
ethernet: renesas: ravb_main: add missing of_node_put after calling
of_parse_phandle
ethernet: renesas: sh_eth: add missing of_node_put after calling
of_parse_phandle
ethernet: stmicro: stmmac: dwmac-socfpga: add missing of_node_put
after calling of_parse_phandle
ethernet: stmicro: stmmac: add missing of_node_put after calling
of_parse_phandle
ethernet: ti: davinci_emac: add missing of_node_put after calling
of_parse_phandle
drivers/net/ethernet/altera/altera_tse_main.c | 1 +
drivers/net/ethernet/apm/xgene/xgene_enet_hw.c | 1 +
drivers/net/ethernet/arc/emac_main.c | 15 ++++++---
drivers/net/ethernet/aurora/nb8800.c | 2 ++
drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 3 ++
drivers/net/ethernet/hisilicon/hns/hns_dsaf_mac.c | 9 ++++--
drivers/net/ethernet/hisilicon/hns/hns_dsaf_main.c | 7 +++--
drivers/net/ethernet/marvell/mvneta.c | 1 +
drivers/net/ethernet/marvell/mvpp2.c | 2 ++
drivers/net/ethernet/marvell/pxa168_eth.c | 1 +
drivers/net/ethernet/renesas/ravb_main.c | 1 +
drivers/net/ethernet/renesas/sh_eth.c | 1 +
.../net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 36 ++++++++++++++++------
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 1 +
.../net/ethernet/stmicro/stmmac/stmmac_platform.c | 7 +++--
drivers/net/ethernet/ti/davinci_emac.c | 1 +
16 files changed, 67 insertions(+), 22 deletions(-)
--
1.9.1
From: Peter Chen <hidden> Date: 2016-08-01 07:11:38
of_node_put needs to be called when the device node which is got
from of_parse_phandle (or of_node_get) has finished using.
Signed-off-by: Peter Chen <redacted>
---
drivers/net/ethernet/altera/altera_tse_main.c | 1 +
1 file changed, 1 insertion(+)
@@ -815,6 +815,7 @@ static int init_phy(struct net_device *dev)phydev=of_phy_connect(dev,phynode,&altera_tse_adjust_link,0,priv->phy_iface);}+of_node_put(phynode);if(!phydev){netdev_err(dev,"Could not find the PHY\n");
From: Peter Chen <hidden> Date: 2016-08-01 07:11:47
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/apm/xgene/xgene_enet_hw.c | 1 +
1 file changed, 1 insertion(+)
@@ -758,6 +758,7 @@ static int xgene_enet_phy_connect(struct net_device *ndev)phy_dev=of_phy_connect(ndev,phy_np,&xgene_enet_adjust_link,0,pdata->phy_mode);+of_node_put(phy_np);if(!phy_dev){netdev_err(ndev,"Could not connect to PHY\n");return-ENODEV;
From: Peter Chen <hidden> Date: 2016-08-01 07:11:57
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/cavium/octeon/octeon_mgmt.c | 3 +++
1 file changed, 3 insertions(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:03
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/aurora/nb8800.c | 2 ++
1 file changed, 2 insertions(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:03
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/hisilicon/hns/hns_dsaf_mac.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:14
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/marvell/mvneta.c | 1 +
1 file changed, 1 insertion(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:18
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/marvell/mvpp2.c | 2 ++
1 file changed, 2 insertions(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:23
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/marvell/pxa168_eth.c | 1 +
1 file changed, 1 insertion(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:28
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>
Acked-by: Sergei Shtylyov <redacted>
---
drivers/net/ethernet/renesas/ravb_main.c | 1 +
1 file changed, 1 insertion(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:34
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>
Acked-by: Sergei Shtylyov <redacted>
---
drivers/net/ethernet/renesas/sh_eth.c | 1 +
1 file changed, 1 insertion(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:40
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>
---
.../net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 36 ++++++++++++++++------
1 file changed, 26 insertions(+), 10 deletions(-)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:45
of_node_put needs to be called when the device node which is got
from of_parse_phandle has finished using.
This commit fixes both local (in stmmac_axi_setup) and global
(plat->phy_node) device_node for this issue, and using the
correct device node when tries to put node at stmmac_probe_config_dt
for error path.
Signed-off-by: Peter Chen <redacted>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 7 +++++--
2 files changed, 6 insertions(+), 2 deletions(-)
From: Peter Chen <hidden> Date: 2016-08-01 07:12:50
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/ti/davinci_emac.c | 1 +
1 file changed, 1 insertion(+)
From: Peter Chen <hidden> Date: 2016-08-01 07:28:08
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/hisilicon/hns/hns_dsaf_main.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
From: Peter Chen <hidden> Date: 2016-08-01 07:28:08
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/arc/emac_main.c | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
@@ -749,14 +749,16 @@ int arc_emac_probe(struct net_device *ndev, int interface)err=of_address_to_resource(dev->of_node,0,&res_regs);if(err){dev_err(dev,"failed to retrieve registers base from device tree\n");-return-ENODEV;+err=-ENODEV;+gotoout_put_node;}/* Get IRQ from device tree */irq=irq_of_parse_and_map(dev->of_node,0);if(!irq){dev_err(dev,"failed to retrieve <irq> value from device tree\n");-return-ENODEV;+err=-ENODEV;+gotoout_put_node;}ndev->netdev_ops=&arc_emac_netdev_ops;
@@ -778,7 +780,7 @@ int arc_emac_probe(struct net_device *ndev, int interface)err=clk_prepare_enable(priv->clk);if(err){dev_err(dev,"failed to enable clock\n");-returnerr;+gotoout_put_node;}clock_frequency=clk_get_rate(priv->clk);
@@ -787,7 +789,8 @@ int arc_emac_probe(struct net_device *ndev, int interface)if(of_property_read_u32(dev->of_node,"clock-frequency",&clock_frequency)){dev_err(dev,"failed to retrieve <clock-frequency> from device tree\n");-return-EINVAL;+err=-EINVAL;+gotoout_put_node;}}
@@ -867,6 +870,7 @@ int arc_emac_probe(struct net_device *ndev, int interface)gotoout_netif_api;}+of_node_put(phy_node);return0;out_netif_api:
of_node_put needs to be called when the device node which is got
from of_parse_phandle has finished using.
This commit fixes both local (in stmmac_axi_setup) and global
(plat->phy_node) device_node for this issue, and using the
correct device node when tries to put node at stmmac_probe_config_dt
for error path.
Signed-off-by: Peter Chen <redacted>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 1 +
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 7 +++++--
2 files changed, 6 insertions(+), 2 deletions(-)
From: David Miller <davem@davemloft.net> Date: 2016-08-02 05:26:04
From: Peter Chen <redacted>
Date: Mon, 1 Aug 2016 15:02:28 +0800
This patch set fixes missing of_node_put issue at ethernet driver.
of_node_put needs to be called when the device node which is got
from of_parse_phandle has finished using.
The compilation test has passed by using allmodconfig for drivers/net/ethernet.
Thanks.
Changes for v2:
- If the device node is local variable, it can be put in the same function.
- If the device node will be used the whole driver life cycle,
it should be put (call of_node_put) at driver's remove.
Patch [4, 5, 9, 14, 15/15]
- Fix the issue that the node still be used at error patch [6/15]
- Add acked for patch [11,12/15]