KVM: VMX: When using ept, allow the guest to own cr4.pge
authorAvi Kivity <avi@redhat.com>
Mon, 7 Dec 2009 10:29:14 +0000 (12:29 +0200)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 1 Mar 2010 15:35:39 +0000 (12:35 -0300)
We make no use of cr4.pge if ept is enabled, but the guest does (to flush
global mappings, as with vmap()), so give the guest ownership of this bit.

Signed-off-by: Avi Kivity <avi@redhat.com>
arch/x86/kvm/vmx.c

index 755811a564b30ea59b9f4e70baad19394ae91141..a7ebaa5f2b65c9c402fcac036acf66a7806cec8e 100644 (file)
@@ -2424,6 +2424,8 @@ static int vmx_vcpu_setup(struct vcpu_vmx *vmx)
 
        vmcs_writel(CR0_GUEST_HOST_MASK, ~0UL);
        vmx->vcpu.arch.cr4_guest_owned_bits = KVM_CR4_GUEST_OWNED_BITS;
+       if (enable_ept)
+               vmx->vcpu.arch.cr4_guest_owned_bits |= X86_CR4_PGE;
        vmcs_writel(CR4_GUEST_HOST_MASK, ~vmx->vcpu.arch.cr4_guest_owned_bits);
 
        tsc_base = vmx->vcpu.kvm->arch.vm_init_tsc;