KVM: nVMX: add CR4_LA57 bit to nested CR4_FIXED1
authorChenyi Qiang <chenyi.qiang@intel.com>
Tue, 19 Nov 2019 08:33:59 +0000 (16:33 +0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 20 Nov 2019 13:23:26 +0000 (14:23 +0100)
When L1 guest uses 5-level paging, it fails vm-entry to L2 due to
invalid host-state. It needs to add CR4_LA57 bit to nested CR4_FIXED1
MSR.

Signed-off-by: Chenyi Qiang <chenyi.qiang@intel.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Reviewed-by: Liran Alon <liran.alon@oracle.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c

index 621142e55e2873fb743bf846e572750732305a1e..89253d60e23a2ba15bfd9768c87bb3965bb7f3d7 100644 (file)
@@ -6962,6 +6962,7 @@ static void nested_vmx_cr_fixed1_bits_update(struct kvm_vcpu *vcpu)
        cr4_fixed1_update(X86_CR4_SMAP,       ebx, bit(X86_FEATURE_SMAP));
        cr4_fixed1_update(X86_CR4_PKE,        ecx, bit(X86_FEATURE_PKU));
        cr4_fixed1_update(X86_CR4_UMIP,       ecx, bit(X86_FEATURE_UMIP));
+       cr4_fixed1_update(X86_CR4_LA57,       ecx, bit(X86_FEATURE_LA57));
 
 #undef cr4_fixed1_update
 }