KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
[sfrench/cifs-2.6.git] / arch / x86 / kvm / x86.c
index a026d926072cf696cd905af847afd143df962cd9..88c593f83b28501a036310521eb14291eed59bed 100644 (file)
@@ -975,6 +975,8 @@ int kvm_set_cr4(struct kvm_vcpu *vcpu, unsigned long cr4)
        if (is_long_mode(vcpu)) {
                if (!(cr4 & X86_CR4_PAE))
                        return 1;
+               if ((cr4 ^ old_cr4) & X86_CR4_LA57)
+                       return 1;
        } else if (is_paging(vcpu) && (cr4 & X86_CR4_PAE)
                   && ((cr4 ^ old_cr4) & pdptr_bits)
                   && !load_pdptrs(vcpu, vcpu->arch.walk_mmu,