diff options
author | Avi Kivity <avi@redhat.com> | 2009-05-24 22:15:25 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-06-15 09:40:01 -0700 |
commit | cd347a162c2056bff69d685b897ad74fccf1c7e0 (patch) | |
tree | 86cbde47bd1bf43c4cca9c520573457529b46566 /arch | |
parent | 82b3c4cc1d1ab48121f5514e22e00c6dcf9e1fb7 (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.c | 3 |
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; } |