On Mon, 11 Jan 2021 14:00:20 +0000 Danielle Ratson wrote:
> > > @@ -420,6 +423,7 @@ struct ethtool_pause_stats {
> > >   * of the generic netdev features interface.
> > >   */
> > >  struct ethtool_ops {
> > > + u32     capabilities;  
> > 
> > An appropriately named bitfield seems better. Alternatively maybe let the 
> > driver specify which lane counts it can accept?  
> 
> Not sure what did you mean, can you please explain?

-       u32     capabilities;  
+       u32     cap_link_lanes_supported:1;

or

-       u32     capabilities;  
+       u8      max_link_lanes;

                if (!lsettings->autoneg &&
-                   !(dev->ethtool_ops->capabilities & 
ETHTOOL_CAP_LINK_LANES_SUPPORTED)) {
+                   dev->ethtool_ops->max_link_lanes < req_lanes) {
                        NL_SET_ERR_MSG_ATTR(info->extack,
                                            tb[ETHTOOL_A_LINKMODES_LANES],
+                                           dev->ethtool_ops->max_link_lanes ?
+                                           "device does not support this many 
lanes" :
                                            "lanes configuration not supported 
by device");
                        return -EOPNOTSUPP;

Reply via email to