diff options
author | Avi Kivity <avi@redhat.com> | 2009-12-07 05:29:14 -0500 |
---|---|---|
committer | Marcelo Tosatti <mtosatti@redhat.com> | 2010-03-01 10:35:39 -0500 |
commit | ce03e4f21a33b97c5d20ce597f64c361bb247904 (patch) | |
tree | 156623c2acf64f160855ce24cdd9cc5106a4ce21 /arch/x86/kvm/vmx.c | |
parent | 4c38609ac569483152f9cb7e5a66f17355e563b2 (diff) |
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/vmx.c')
-rw-r--r-- | arch/x86/kvm/vmx.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 755811a564b3..a7ebaa5f2b65 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) | |||
2424 | 2424 | ||
2425 | vmcs_writel(CR0_GUEST_HOST_MASK, ~0UL); | 2425 | vmcs_writel(CR0_GUEST_HOST_MASK, ~0UL); |
2426 | vmx->vcpu.arch.cr4_guest_owned_bits = KVM_CR4_GUEST_OWNED_BITS; | 2426 | vmx->vcpu.arch.cr4_guest_owned_bits = KVM_CR4_GUEST_OWNED_BITS; |
2427 | if (enable_ept) | ||
2428 | vmx->vcpu.arch.cr4_guest_owned_bits |= X86_CR4_PGE; | ||
2427 | vmcs_writel(CR4_GUEST_HOST_MASK, ~vmx->vcpu.arch.cr4_guest_owned_bits); | 2429 | vmcs_writel(CR4_GUEST_HOST_MASK, ~vmx->vcpu.arch.cr4_guest_owned_bits); |
2428 | 2430 | ||
2429 | tsc_base = vmx->vcpu.kvm->arch.vm_init_tsc; | 2431 | tsc_base = vmx->vcpu.kvm->arch.vm_init_tsc; |