aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-08-27 16:40:51 +0300
committerAvi Kivity <avi@qumranet.com>2008-10-15 10:15:24 +0200
commit171d595d3b3254b9a952af8d1f6965d2e85dcbaa (patch)
tree87e4197b72ff28e04adb72a157c483d6e571a0be /arch/x86/kvm
parentKVM: MMU: Add locking around kvm_mmu_slot_remove_write_access() (diff)
downloadlinux-dev-171d595d3b3254b9a952af8d1f6965d2e85dcbaa.tar.xz
linux-dev-171d595d3b3254b9a952af8d1f6965d2e85dcbaa.zip
KVM: MMU: Flush tlbs after clearing write permission when accessing dirty log
Otherwise, the cpu may allow writes to the tracked pages, and we lose some display bits or fail to migrate correctly. Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm')
-rw-r--r--arch/x86/kvm/mmu.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 5052acdc0a77..853a2889b202 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -2111,6 +2111,7 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot)
if (pt[i] & PT_WRITABLE_MASK)
pt[i] &= ~PT_WRITABLE_MASK;
}
+ kvm_flush_remote_tlbs(kvm);
spin_unlock(&kvm->mmu_lock);
}