On Thu, 2021-04-15 at 08:21 -0700, Jakub Kicinski wrote:
> On Wed, 14 Apr 2021 23:25:43 -0700 Saeed Mahameed wrote:
> > On Tue, 2021-04-13 at 20:44 -0700, Jakub Kicinski wrote:
> > > ethtool_link_ksettings *);
> > > +       void    (*get_fec_stats)(struct net_device *dev,
> > > +                                struct ethtool_fec_stats
> > > *fec_stats);  
> > 
> > why void ? some drivers need to access the FW and it could be an
> > old
> > FW/device where the fec stats are not supported.
> 
> When stats are not supported just returning is fine. Stats are
> initialized to -1, core will not dump them into the netlink message 
> if driver didn't assign anything.
> 
> > and sometimes e.g. in mlx5 case FW can fail for FW related
> > businesses
> > :)..
> 
> Can do. I was wondering if the entity reading the stats (from user
> space) can do anything useful with the error, and didn't really come 
> up with anything other than printing an error. Which the kernel can 
> do as well. OTOH if there are multiple stats to read and one of them
> fails its probably better to return partial results than fail 
> the entire op. Therefore I went for no error - if something fails - 
> the stats will be missing.
> 
> Does that make any sense? Or do you think errors are rare enough that
> it's okay if they are fatal? (with the caveat that -EOPNOTSUPP should
> be ignored).

Agreed, Thanks for the explanation
but you still need to handle the error internally in the driver,
otherwise the command returns garbage or 0 if you didn't check return
status. 

Reply via email to