diff options
author | Giuseppe CAVALLARO | 2013-02-06 21:47:52 +0100 |
---|---|---|
committer | David S. Miller | 2013-02-11 02:12:10 +0100 |
commit | 3955b22b9798ae8694ac053614694695991f0a91 (patch) | |
tree | a46217f7ea13c2fcb4f9506a91663aadbbc4cb40 | |
parent | stmmac: fix macro used for debugging the xmit (diff) | |
download | kernel-qcow2-linux-3955b22b9798ae8694ac053614694695991f0a91.tar.gz kernel-qcow2-linux-3955b22b9798ae8694ac053614694695991f0a91.tar.xz kernel-qcow2-linux-3955b22b9798ae8694ac053614694695991f0a91.zip |
stmmac: mdio register has to fail if the phy is not found
With this patch the stmmac fails in case of the phy device
is not found; w/o this fix the mdio can be register twice when
do down/up the iface and this is not correct.
Reported-by: Stas <stsp@list.ru>
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-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 0376a5e6b2bf..0b9829fe3eea 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; |