]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - tools/testing/selftests/kvm/lib/kvm_util.c
kvm: introduce manual dirty log reprotect
[thirdparty/kernel/stable.git] / tools / testing / selftests / kvm / lib / kvm_util.c
index 1b41e71283d5b1d8afd6505f40943bfc35267a9b..c9e94d6503af8d15186904547f4eb6dd8e25f1fc 100644 (file)
@@ -231,6 +231,19 @@ void kvm_vm_get_dirty_log(struct kvm_vm *vm, int slot, void *log)
                    strerror(-ret));
 }
 
+void kvm_vm_clear_dirty_log(struct kvm_vm *vm, int slot, void *log,
+                           uint64_t first_page, uint32_t num_pages)
+{
+       struct kvm_clear_dirty_log args = { .dirty_bitmap = log, .slot = slot,
+                                           .first_page = first_page,
+                                           .num_pages = num_pages };
+       int ret;
+
+       ret = ioctl(vm->fd, KVM_CLEAR_DIRTY_LOG, &args);
+       TEST_ASSERT(ret == 0, "%s: KVM_CLEAR_DIRTY_LOG failed: %s",
+                   strerror(-ret));
+}
+
 /*
  * Userspace Memory Region Find
  *