summaryrefslogtreecommitdiff
path: root/drivers/kvm
diff options
context:
space:
mode:
authorUri Lublin <uril@qumranet.com>2007-02-22 17:37:32 +0200
committerAvi Kivity <avi@qumranet.com>2007-03-04 11:12:43 +0200
commitff990d5952712c2e163b355946c39278da8407a8 (patch)
tree73766d7c8435ded99d8a107b4471a8020164d800 /drivers/kvm
parent02b27c1f802bfb60cc2cb5b763dde1b6b3479a7e (diff)
downloadlinux-3.10-ff990d5952712c2e163b355946c39278da8407a8.tar.gz
linux-3.10-ff990d5952712c2e163b355946c39278da8407a8.tar.bz2
linux-3.10-ff990d5952712c2e163b355946c39278da8407a8.zip
KVM: Remove write access permissions when dirty-page-logging is enabled
Enabling dirty page logging is done using KVM_SET_MEMORY_REGION ioctl. If the memory region already exists, we need to remove write accesses, so writes will be caught, and dirty pages will be logged. Signed-off-by: Uri Lublin <uril@qumranet.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'drivers/kvm')
-rw-r--r--drivers/kvm/kvm_main.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/kvm/kvm_main.c b/drivers/kvm/kvm_main.c
index be7694db285..e48b4d7a350 100644
--- a/drivers/kvm/kvm_main.c
+++ b/drivers/kvm/kvm_main.c
@@ -748,6 +748,8 @@ raced:
vcpu = vcpu_load_slot(kvm, i);
if (!vcpu)
continue;
+ if (new.flags & KVM_MEM_LOG_DIRTY_PAGES)
+ do_remove_write_access(vcpu, mem->slot);
kvm_mmu_reset_context(vcpu);
vcpu_put(vcpu);
}