On 29/07/21 01:44, Sean Christopherson wrote:
+ rdmsr_safe(MSR_IA32_VMX_PROCBASED_CTLS3, &ign, &supported);
+ c->vmx_capability[TERTIARY_CTLS_LOW] = ign;
+ c->vmx_capability[TERTIARY_CTLS_HIGH] = supported;
Assuming only the lower 32 bits are going to be used for the near future (next
few years), what about defining just TERTIARY_CTLS_LOW and then doing:
/*
* Tertiary controls are 64-bit allowed-1, so unlikely other MSRs, the
* upper bits are ignored (because they're not used, yet...).
*/
rdmsr_safe(MSR_IA32_VMX_PROCBASED_CTLS3, &supported, &ign);
c->vmx_capability[TERTIARY_CTLS_LOW] = supported;
I.e. punt the ugliness issue down the road a few years.
Or use two new variables low/high instead of supported/ign.
Paolo