On Fri, Sep 22, 2017 at 03:40:43PM -0400, Vivien Didelot wrote: > There is no need to store a phy_device in dsa_slave_priv since > net_device already provides one. Simply s/p->phy/dev->phydev/. > > While at it, return -ENODEV when it is NULL instead of -EOPNOTSUPP.
I just did a quick poll for calling phy_mii_ioctl(). ENODEV seems the most popular, second to EINVAL. Marvell drivers all use EOPNOTSUPP. > static int dsa_slave_nway_reset(struct net_device *dev) > { > - struct dsa_slave_priv *p = netdev_priv(dev); > + if (!dev->phydev) > + return -ENODEV; > > - if (p->phy != NULL) > - return genphy_restart_aneg(p->phy); > - > - return -EOPNOTSUPP; > + return genphy_restart_aneg(dev->phydev); > } It looks like this can now be replaced with phy_ethtool_nway_reset(). It could be there are other phy_ethtool_ helpers which can be used, now that we have phydev in ndev. Andrew