On Thu, 5 Dec 2024 11:57:33 +0000 Russell King (Oracle) wrote: > > + * The input structure is not zero-initialized and the implementation > > + * must only set statistics which are actually collected by the device. > > Eh what? This states to me that the structure is not initialised, but > drivers should not write to all members unless they support the > statistic. > > Doesn't this mean we end up returning uninitialised data to userspace? > If the structure is not initialised, how does core code know which > statistics the driver has set to avoid returning uninitialised data? It's not zero-initialized. Meaning it's initialized to a special magic value that the core then checks for to decide if the driver actually reported something. Maybe this: * Drivers must not zero out statistics which they don't report. * Core will initialize members to ETHTOOL_STAT_NOT_SET and check * for this value to report to user space only the stats actually * supported by the device. IDK how to phrase this better..