diff mbox

kvm: Fix error code check from kvm_vm_ioctl()

Message ID 1411999009-25241-1-git-send-email-christoffer.dall@linaro.org
State New
Headers show

Commit Message

Christoffer Dall Sept. 29, 2014, 1:56 p.m. UTC
Currently kvm_physical_sync_dirty_bitmap() calls kvm_vm_ioctl() and
checks if it returns -1.  However, kvm_vm_ioctl() actually returns
-errno, and not -1, so this check will fail and architectures not
implementing this functionality in the kernel blindly attempt
broken things like unimplemented dirty page logging for migration.

This addresses bug https://bugs.launchpad.net/qemu/+bug/1294227.

Cc: Mario Smarduch <m.smarduch@samsung.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
---
 kvm-all.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox

Patch

diff --git a/kvm-all.c b/kvm-all.c
index 4afcd05..ab57170 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -429,7 +429,7 @@  static int kvm_physical_sync_dirty_bitmap(MemoryRegionSection *section)
 
         d.slot = mem->slot;
 
-        if (kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d) == -1) {
+        if (kvm_vm_ioctl(s, KVM_GET_DIRTY_LOG, &d) < 0) {
             DPRINTF("ioctl failed %d\n", errno);
             ret = -1;
             break;