Put the code that obtains device_node and the code that uses it tightly together to remove duplicate resource cleanup statements between them.
Signed-off-by: Wen Yang <wen.yan...@zte.com.cn> Reported-by: Markus Elfring <markus.elfr...@web.de> Cc: Markus Elfring <markus.elfr...@web.de> Cc: Wingman Kwok <w-kw...@ti.com> (maintainer:TI NETCP ETHERNET DRIVER) Cc: Murali Karicheri <m-kariche...@ti.com> (maintainer:TI NETCP ETHERNET DRIVER) Cc: "David S. Miller" <da...@davemloft.net> (odd fixer:NETWORKING DRIVERS) Cc: net...@vger.kernel.org (open list:TI NETCP ETHERNET DRIVER) Cc: linux-kernel@vger.kernel.org (open list) --- drivers/net/ethernet/ti/netcp_ethss.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/ti/netcp_ethss.c b/drivers/net/ethernet/ti/netcp_ethss.c index 0a920c5..748116a 100644 --- a/drivers/net/ethernet/ti/netcp_ethss.c +++ b/drivers/net/ethernet/ti/netcp_ethss.c @@ -3651,22 +3651,18 @@ static int gbe_probe(struct netcp_device *netcp_device, struct device *dev, if (ret) return ret; - interfaces = of_get_child_by_name(node, "interfaces"); - if (!interfaces) - dev_err(dev, "could not find interfaces\n"); - ret = netcp_txpipe_init(&gbe_dev->tx_pipe, netcp_device, gbe_dev->dma_chan_name, gbe_dev->tx_queue_id); - if (ret) { - of_node_put(interfaces); + if (ret) return ret; - } ret = netcp_txpipe_open(&gbe_dev->tx_pipe); - if (ret) { - of_node_put(interfaces); + if (ret) return ret; - } + + interfaces = of_get_child_by_name(node, "interfaces"); + if (!interfaces) + dev_err(dev, "could not find interfaces\n"); /* Create network interfaces */ INIT_LIST_HEAD(&gbe_dev->gbe_intf_head); -- 2.9.5