> + vdata->major = > cpu_to_be16(LIQUIDIO_BASE_MAJOR_VERSION); > + vdata->minor = > cpu_to_be16(LIQUIDIO_BASE_MINOR_VERSION); > + vdata->micro = > cpu_to_be16(LIQUIDIO_BASE_MICRO_VERSION); Will probably add sparse warnings.
> +#define LIO_STR_HELPER(x) #x > +#define LIO_STR(x) LIO_STR_HELPER(x) This is basically __stringify() > +struct lio_version { > + u64 major:16; > + u64 minor:16; > + u64 micro:16; > + u64 reserved:16; > +}; You probably want those typed, not merely bits out of u64. But even if you didn't, what's the benefit this has over u16s?