diff options
Diffstat (limited to 'drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c')
| -rw-r--r-- | drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 10 | 
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c index 0376a5e6b2b..0b9829fe3ee 100644 --- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c +++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c @@ -188,8 +188,6 @@ int stmmac_mdio_register(struct net_device *ndev)  		goto bus_register_fail;  	} -	priv->mii = new_bus; -  	found = 0;  	for (addr = 0; addr < PHY_MAX_ADDR; addr++) {  		struct phy_device *phydev = new_bus->phy_map[addr]; @@ -237,8 +235,14 @@ int stmmac_mdio_register(struct net_device *ndev)  		}  	} -	if (!found) +	if (!found) {  		pr_warning("%s: No PHY found\n", ndev->name); +		mdiobus_unregister(new_bus); +		mdiobus_free(new_bus); +		return -ENODEV; +	} + +	priv->mii = new_bus;  	return 0;  |