diff --git a/kvm-all.c b/kvm-all.c index 9a822ed88c..f669c3ac0f 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -318,7 +318,6 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, KVMDirtyLog d; KVMSlot *mem; int ret = 0; - int r; d.dirty_bitmap = NULL; while (start_addr < end_addr) { @@ -327,11 +326,6 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, break; } - /* We didn't activate dirty logging? Don't care then. */ - if(!(mem->flags & KVM_MEM_LOG_DIRTY_PAGES)) { - continue; - } - size = ((mem->memory_size >> TARGET_PAGE_BITS) + 7) / 8; if (!d.dirty_bitmap) { d.dirty_bitmap = qemu_malloc(size); @@ -343,8 +337,7 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, d.slot = mem->slot; - r = kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d); - if (r == -EINVAL) { + if (kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d) == -1) { dprintf("ioctl failed %d\n", errno); ret = -1; break; @@ -358,10 +351,6 @@ int kvm_physical_sync_dirty_bitmap(target_phys_addr_t start_addr, if (test_le_bit(nr, bitmap)) { cpu_physical_memory_set_dirty(addr); - } else if (r < 0) { - /* When our KVM implementation doesn't know about dirty logging - * we can just assume it's always dirty and be fine. */ - cpu_physical_memory_set_dirty(addr); } } start_addr = phys_addr;