]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
KVM: Make paravirt tlb flush also reload the PAE PDPTRs
authorAvi Kivity <avi@redhat.com>
Sun, 24 May 2009 19:15:25 +0000 (22:15 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 15 Jun 2009 16:40:01 +0000 (09:40 -0700)
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>
arch/x86/kvm/mmu.c

index 8005da20ad6bbc25501dec715c8dc41cf65d06ad..2d2affda90a7d4f3d28e2bcc757d53dd1926989e 100644 (file)
@@ -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;
 }