Re: [PATCH net-next RFC 5/9] net: dsa: forward hardware timestamping ioctls to switch driver

Vivien Didelot
2017-09-28T19:31:44Z

Hi Brandon,

Brandon Streiff <brandon.streiff@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