Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / arch / x86 / kvm / vmx.c
index 859a01a07dbfb2937b8f0792e4a4aa0bbe50767b..ee03679efe788d61e73d76f818931d8c1a45fad2 100644 (file)
@@ -1744,18 +1744,15 @@ static void enter_lmode(struct kvm_vcpu *vcpu)
                             (guest_tr_ar & ~AR_TYPE_MASK)
                             | AR_TYPE_BUSY_64_TSS);
        }
-       vcpu->arch.efer |= EFER_LMA;
-       vmx_set_efer(vcpu, vcpu->arch.efer);
+       vmx_set_efer(vcpu, vcpu->arch.efer | EFER_LMA);
 }
 
 static void exit_lmode(struct kvm_vcpu *vcpu)
 {
-       vcpu->arch.efer &= ~EFER_LMA;
-
        vmcs_write32(VM_ENTRY_CONTROLS,
                     vmcs_read32(VM_ENTRY_CONTROLS)
                     & ~VM_ENTRY_IA32E_MODE);
-       vmx_set_efer(vcpu, vcpu->arch.efer);
+       vmx_set_efer(vcpu, vcpu->arch.efer & ~EFER_LMA);
 }
 
 #endif