diff options
Diffstat (limited to 'drivers/net/ethernet/rdc/r6040.c')
| -rw-r--r-- | drivers/net/ethernet/rdc/r6040.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/rdc/r6040.c b/drivers/net/ethernet/rdc/r6040.c index eecd52ed1ed2..f4d434c379e7 100644 --- a/drivers/net/ethernet/rdc/r6040.c +++ b/drivers/net/ethernet/rdc/r6040.c @@ -1159,10 +1159,12 @@ static int r6040_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)  	err = register_netdev(dev);  	if (err) {  		dev_err(&pdev->dev, "Failed to register net device\n"); -		goto err_out_mdio_unregister; +		goto err_out_phy_disconnect;  	}  	return 0; +err_out_phy_disconnect: +	phy_disconnect(dev->phydev);  err_out_mdio_unregister:  	mdiobus_unregister(lp->mii_bus);  err_out_mdio: @@ -1186,6 +1188,7 @@ static void r6040_remove_one(struct pci_dev *pdev)  	struct r6040_private *lp = netdev_priv(dev);  	unregister_netdev(dev); +	phy_disconnect(dev->phydev);  	mdiobus_unregister(lp->mii_bus);  	mdiobus_free(lp->mii_bus);  	netif_napi_del(&lp->napi);  |