From: Uwe Kleine-König Date: Thu, 7 Aug 2014 21:06:00 +0000 (+0200) Subject: net: fs_enet: fix reference counting for phy_node X-Git-Tag: v3.17-rc1~33^2~29 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=129cc83a0b7ed9429d896e4f215d1f6a8c58ba40;p=linux.git net: fs_enet: fix reference counting for phy_node Make sure that fs_enet_probe is left with a reference to the phy node. In the presence of a phy handle this is already the case as of_parse_phandle returns a reference. In the fixed phy case a call to of_node_get is necessary. Otherwise the error path and remove function drop a reference the driver isn't holding. Fixes: bb74d9a4a87b ("fs_enet: use the new fixed PHY helpers") Signed-off-by: Uwe Kleine-König Signed-off-by: David S. Miller --- diff --git a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c index cfaf17b70f3f..748fd24d3d9e 100644 --- a/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c +++ b/drivers/net/ethernet/freescale/fs_enet/fs_enet-main.c @@ -1033,7 +1033,7 @@ static int fs_enet_probe(struct platform_device *ofdev) /* In the case of a fixed PHY, the DT node associated * to the PHY is the Ethernet MAC DT node. */ - fpi->phy_node = ofdev->dev.of_node; + fpi->phy_node = of_node_get(ofdev->dev.of_node); } if (of_device_is_compatible(ofdev->dev.of_node, "fsl,mpc5125-fec")) {