On 07/05/19 17:36, Sean Christopherson wrote: > Since the AR_BYTES emulation is done only for intercepted VMWRITE, if a > future patch (re)exposed AR_BYTES for both VMWRITE and VMREAD, then KVM > would end up with incosistent behavior on pre-Haswell hardware, e.g. KVM > would drop the reserved bits on intercepted VMWRITE, but direct VMWRITE > to the shadow VMCS would not drop the bits. Whoever gets that WARN will have probably a hard time finding again all of this, so: diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c index cd51ef68434e..8c5614957e04 100644 --- a/arch/x86/kvm/vmx/nested.c +++ b/arch/x86/kvm/vmx/nested.c @@ -93,7 +93,7 @@ static void init_vmcs_shadow_fields(void) WARN_ONCE(field >= GUEST_ES_AR_BYTES && field <= GUEST_TR_AR_BYTES, - "Update vmcs12_write_any() to expose AR_BYTES RW"); + "Update vmcs12_write_any() to drop reserved bits from AR_BYTES"); /* * PML and the preemption timer can be emulated, but the Paolo