On Fri, Aug 06, 2021, Paolo Bonzini wrote: > On 06/08/21 00:32, Sean Christopherson wrote: > > > -BUILD_CONTROLS_SHADOW(vm_entry, VM_ENTRY_CONTROLS) > > > -BUILD_CONTROLS_SHADOW(vm_exit, VM_EXIT_CONTROLS) > > > -BUILD_CONTROLS_SHADOW(pin, PIN_BASED_VM_EXEC_CONTROL) > > > -BUILD_CONTROLS_SHADOW(exec, CPU_BASED_VM_EXEC_CONTROL) > > > -BUILD_CONTROLS_SHADOW(secondary_exec, SECONDARY_VM_EXEC_CONTROL) > > > +BUILD_CONTROLS_SHADOW(vm_entry, VM_ENTRY_CONTROLS, 32) > > > +BUILD_CONTROLS_SHADOW(vm_exit, VM_EXIT_CONTROLS, 32) > > > +BUILD_CONTROLS_SHADOW(pin, PIN_BASED_VM_EXEC_CONTROL, 32) > > > +BUILD_CONTROLS_SHADOW(exec, CPU_BASED_VM_EXEC_CONTROL, 32) > > > +BUILD_CONTROLS_SHADOW(secondary_exec, SECONDARY_VM_EXEC_CONTROL, 32) > > > +BUILD_CONTROLS_SHADOW(tertiary_exec, TERTIARY_VM_EXEC_CONTROL, 64) > > > > This fails to compile because all the TERTIARY collateral is in a later patch. > > > > I think I'd also prefer hiding the 32/64 param via more macros, e.g. > > > > #define __BUILD_CONTROLS_SHADOW(lname, uname, bits) \ > > No, please don't. :) Also because the 64 bit version is used only once. LOL, fine. I'm beginning to think you have a filter for "macros" that sounds off alarms and flashing lights ;-)