aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-12-07 12:29:14 +0200
committerMarcelo Tosatti <mtosatti@redhat.com>2010-03-01 12:35:39 -0300
commitce03e4f21a33b97c5d20ce597f64c361bb247904 (patch)
tree156623c2acf64f160855ce24cdd9cc5106a4ce21 /arch/x86/kvm
parent4c38609ac569483152f9cb7e5a66f17355e563b2 (diff)
downloadkernel_goldelico_gta04-ce03e4f21a33b97c5d20ce597f64c361bb247904.zip
kernel_goldelico_gta04-ce03e4f21a33b97c5d20ce597f64c361bb247904.tar.gz
kernel_goldelico_gta04-ce03e4f21a33b97c5d20ce597f64c361bb247904.tar.bz2
KVM: VMX: When using ept, allow the guest to own cr4.pge
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>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/vmx.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 755811a..a7ebaa5 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -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;