From: Avi Kivity Date: Sun, 24 May 2009 19:15:25 +0000 (+0300) Subject: KVM: Make paravirt tlb flush also reload the PAE PDPTRs X-Git-Tag: v3.12-rc1~14507^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a8cd0244e9cebcf9b358d24c7e7410062f3665cb;p=kernel%2Fkernel-generic.git KVM: Make paravirt tlb flush also reload the PAE PDPTRs 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. Cc: stable@kernel.org Signed-off-by: Avi Kivity --- diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index b6caf13..32cf11e 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c @@ -2897,8 +2897,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; }