summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-05-24 22:15:25 +0300
committerGreg Kroah-Hartman <gregkh@suse.de>2009-06-15 09:40:01 -0700
commitcd347a162c2056bff69d685b897ad74fccf1c7e0 (patch)
tree86cbde47bd1bf43c4cca9c520573457529b46566 /arch
parent82b3c4cc1d1ab48121f5514e22e00c6dcf9e1fb7 (diff)
KVM: Make paravirt tlb flush also reload the PAE PDPTRs
commit a8cd0244e9cebcf9b358d24c7e7410062f3665cb upstream. The paravirt tlb flush may be used not only to flush TLBs, but also to reload the four page-directory-pointer-table entries, as it is used as a replacement for reloading CR3. Change the code to do the entire CR3 reloading dance instead of simply flushing the TLB. Signed-off-by: Avi Kivity <avi@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kvm/mmu.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 8005da20ad6b..2d2affda90a7 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2906,8 +2906,7 @@ static int kvm_pv_mmu_write(struct kvm_vcpu *vcpu,
static int kvm_pv_mmu_flush_tlb(struct kvm_vcpu *vcpu)
{
- kvm_x86_ops->tlb_flush(vcpu);
- set_bit(KVM_REQ_MMU_SYNC, &vcpu->requests);
+ kvm_set_cr3(vcpu, vcpu->arch.cr3);
return 1;
}