Hi Brandon, Brandon Streiff <brandon.stre...@ni.com> writes:
> static int dsa_slave_ioctl(struct net_device *dev, struct ifreq *ifr, int > cmd) > { > + struct dsa_slave_priv *p = netdev_priv(dev); > + struct dsa_switch *ds = p->dp->ds; > + int port = p->dp->index; > + > if (!dev->phydev) > return -ENODEV; Move this check below: > > - return phy_mii_ioctl(dev->phydev, ifr, cmd); > + switch (cmd) { > + case SIOCGMIIPHY: > + case SIOCGMIIREG: > + case SIOCSMIIREG: > + if (dev->phydev) > + return phy_mii_ioctl(dev->phydev, ifr, cmd); > + else > + return -EOPNOTSUPP; if (!dev->phydev) return -ENODEV; return phy_mii_ioctl(dev->phydev, ifr, cmd); > + case SIOCGHWTSTAMP: > + if (ds->ops->port_hwtstamp_get) > + return ds->ops->port_hwtstamp_get(ds, port, ifr); > + else > + return -EOPNOTSUPP; Here you can replace the else statement with break; > + case SIOCSHWTSTAMP: > + if (ds->ops->port_hwtstamp_set) > + return ds->ops->port_hwtstamp_set(ds, port, ifr); > + else > + return -EOPNOTSUPP; Same here; > + default: > + return -EOPNOTSUPP; > + } Then drop the default case and return -EOPNOTSUPP after the switch. > } Thanks, Vivien