Commit 1f3bd64a authored by Heiner Kallweit's avatar Heiner Kallweit Committed by Paolo Abeni

net: stmmac: fix invalid call to mdiobus_get_phy()

In a number of cases the driver assigns a default value of -1 to
priv->plat->phy_addr. This may result in calling mdiobus_get_phy()
with addr parameter being -1. Therefore check for this scenario and
bail out before calling mdiobus_get_phy().

Fixes: 42e87024 ("net: stmmac: Fix case when PHY handle is not present")
Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
Link: https://lore.kernel.org/r/669f9671-ecd1-a41b-2727-7b73e3003985@gmail.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 867dbe78
...@@ -1150,6 +1150,11 @@ static int stmmac_init_phy(struct net_device *dev) ...@@ -1150,6 +1150,11 @@ static int stmmac_init_phy(struct net_device *dev)
int addr = priv->plat->phy_addr; int addr = priv->plat->phy_addr;
struct phy_device *phydev; struct phy_device *phydev;
if (addr < 0) {
netdev_err(priv->dev, "no phy found\n");
return -ENODEV;
}
phydev = mdiobus_get_phy(priv->mii, addr); phydev = mdiobus_get_phy(priv->mii, addr);
if (!phydev) { if (!phydev) {
netdev_err(priv->dev, "no phy at addr %d\n", addr); netdev_err(priv->dev, "no phy at addr %d\n", addr);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment