On Fri, 2024-05-03 at 00:07 +0000, Edgecombe, Rick P wrote: > On Sat, 2024-03-02 at 00:20 +1300, Kai Huang wrote: > > TD_SYSINFO_MAP() macro actually takes the member of the 'struct > > tdx_tdmr_sysinfo' as the second argument and uses the offsetof() to > > calculate the offset for that member. > > > > Rename the macro argument _offset to _member to reflect this. > > The KVM patches will want to use this macro. The fact that it is misnamed will > percolate into the KVM code if it is not updated before it gets wider callers. > (This is a reason why this is good change from KVM's perspective). > > See the KVM code below: > > #define TDX_INFO_MAP(_field_id, _member) \ > TD_SYSINFO_MAP(_field_id, struct st, _member) > > struct tdx_metadata_field_mapping st_fields[] = { > TDX_INFO_MAP(NUM_CPUID_CONFIG, num_cpuid_config), > TDX_INFO_MAP(TDCS_BASE_SIZE, tdcs_base_size), > TDX_INFO_MAP(TDVPS_BASE_SIZE, tdvps_base_size), > }; > #undef TDX_INFO_MAP > > #define TDX_INFO_MAP(_field_id, _member) \ > TD_SYSINFO_MAP(_field_id, struct tdx_info, _member) > > struct tdx_metadata_field_mapping fields[] = { > TDX_INFO_MAP(FEATURES0, features0), > TDX_INFO_MAP(ATTRS_FIXED0, attributes_fixed0), > TDX_INFO_MAP(ATTRS_FIXED1, attributes_fixed1), > TDX_INFO_MAP(XFAM_FIXED0, xfam_fixed0), > TDX_INFO_MAP(XFAM_FIXED1, xfam_fixed1), > }; > #undef TDX_INFO_MAP I was thinking how to respond. I guess your point is we can also mention KVM will need to use this too so it's better to change it before it gets wider callers. But I don't think it is needed because if it is misnamed now then we already have a justification to do it. And technically, I don't think the argument name used in KVM actually has anything to do with the argument name used in the TD_SYSINFO_MAP() macro definition here. What really matters is when they get used, we need to pass the "real struct member": struct whatever { u64 a; u16 b; }; #define TDX_INFO_MAP_WHATEVER(_field_id, _xyz) \ TD_SYSINFO_MAP(_field_id, struct whatever, _xyz) const struct tdx_metadata_field_mapping fields[] = { TDX_INFO_MAP_WHATEVER(_FIELD_A, a), TDX_INFO_MAP_WHATEVER(_FIELD_B, b), }; No?