[PATCH] net: macb: NULL out phydev after removing mdio bus

From: Xander Huff
Date: Fri Oct 07 2016 - 11:14:56 EST


From: Nathan Sullivan <nathan.sullivan@xxxxxx>

To ensure the dev->phydev pointer is not used after becoming invalid in
mdiobus_unregister, set it to NULL. This happens when removing the macb
driver without first taking its interface down, since unregister_netdev
will end up calling macb_close.

Signed-off-by: Xander Huff <xander.huff@xxxxxx>
Signed-off-by: Nathan Sullivan <nathan.sullivan@xxxxxx>
Signed-off-by: Brad Mouring <brad.mouring@xxxxxx>
---
drivers/net/ethernet/cadence/macb.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c
index 63144bb..b32444a 100644
--- a/drivers/net/ethernet/cadence/macb.c
+++ b/drivers/net/ethernet/cadence/macb.c
@@ -3117,6 +3117,7 @@ static int macb_remove(struct platform_device *pdev)
if (dev->phydev)
phy_disconnect(dev->phydev);
mdiobus_unregister(bp->mii_bus);
+ dev->phydev = NULL;
mdiobus_free(bp->mii_bus);

/* Shutdown the PHY if there is a GPIO reset */
--
1.9.1