diff options
author | Avi Kivity <avi@redhat.com> | 2009-05-24 22:15:25 +0300 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-05-25 20:00:50 +0300 |
commit | a8cd0244e9cebcf9b358d24c7e7410062f3665cb (patch) | |
tree | 8e7da98d9fbcb5f86abfab5b1d6ab8b97294f801 /arch | |
parent | 59a3759d0fe8d969888c741bb33f4946e4d3750d (diff) | |
download | op-kernel-dev-a8cd0244e9cebcf9b358d24c7e7410062f3665cb.zip op-kernel-dev-a8cd0244e9cebcf9b358d24c7e7410062f3665cb.tar.gz |
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 <avi@redhat.com>
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 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; } |