|
@@ -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;
|
|
|
|