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).