>  int bcm_sf2_get_rxnfc(struct dsa_switch *ds, int port,
>                     struct ethtool_rxnfc *nfc, u32 *rule_locs)
>  {
> +     struct net_device *p = ds->ports[port].cpu_dp->master;
>       struct bcm_sf2_priv *priv = bcm_sf2_to_priv(ds);
>       int ret = 0;
>  
> @@ -1214,12 +1223,20 @@ int bcm_sf2_get_rxnfc(struct dsa_switch *ds, int port,
>  
>       mutex_unlock(&priv->cfp.lock);

Hi Florian

I think you should be testing ret here. If you have had a real error,
you probably should be returning it, rather than overwriting it with
what ethtool returns below.

> +     /* Pass up the commands to the attached master network device */
> +     if (p->ethtool_ops->get_rxnfc) {
> +             ret = p->ethtool_ops->get_rxnfc(p, nfc, rule_locs);
> +             if (ret == -EOPNOTSUPP)
> +                     ret = 0;
> +     }
> +
>       return ret;
>  }

   Andrew

Reply via email to