diff options
Diffstat (limited to 'drivers/net/stmmac/stmmac_main.c')
-rw-r--r-- | drivers/net/stmmac/stmmac_main.c | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/drivers/net/stmmac/stmmac_main.c b/drivers/net/stmmac/stmmac_main.c index a31d580f306d..acf061686940 100644 --- a/drivers/net/stmmac/stmmac_main.c +++ b/drivers/net/stmmac/stmmac_main.c | |||
@@ -1437,24 +1437,18 @@ static void stmmac_poll_controller(struct net_device *dev) | |||
1437 | static int stmmac_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) | 1437 | static int stmmac_ioctl(struct net_device *dev, struct ifreq *rq, int cmd) |
1438 | { | 1438 | { |
1439 | struct stmmac_priv *priv = netdev_priv(dev); | 1439 | struct stmmac_priv *priv = netdev_priv(dev); |
1440 | int ret = -EOPNOTSUPP; | 1440 | int ret; |
1441 | 1441 | ||
1442 | if (!netif_running(dev)) | 1442 | if (!netif_running(dev)) |
1443 | return -EINVAL; | 1443 | return -EINVAL; |
1444 | 1444 | ||
1445 | switch (cmd) { | 1445 | if (!priv->phydev) |
1446 | case SIOCGMIIPHY: | 1446 | return -EINVAL; |
1447 | case SIOCGMIIREG: | 1447 | |
1448 | case SIOCSMIIREG: | 1448 | spin_lock(&priv->lock); |
1449 | if (!priv->phydev) | 1449 | ret = phy_mii_ioctl(priv->phydev, rq, cmd); |
1450 | return -EINVAL; | 1450 | spin_unlock(&priv->lock); |
1451 | 1451 | ||
1452 | spin_lock(&priv->lock); | ||
1453 | ret = phy_mii_ioctl(priv->phydev, if_mii(rq), cmd); | ||
1454 | spin_unlock(&priv->lock); | ||
1455 | default: | ||
1456 | break; | ||
1457 | } | ||
1458 | return ret; | 1452 | return ret; |
1459 | } | 1453 | } |
1460 | 1454 | ||