diff --git a/hw/fdc.c b/hw/fdc.c
index f1b2f9a..a21e05f 100644
--- a/hw/fdc.c
+++ b/hw/fdc.c
@@ -1847,7 +1847,7 @@
     dev = isa_create("isa-fdc");
     qdev_prop_set_drive(&dev->qdev, "driveA", fds[0]);
     qdev_prop_set_drive(&dev->qdev, "driveB", fds[1]);
-    if (qdev_init(&dev->qdev) != 0)
+    if (qdev_init(&dev->qdev) < 0)
         return NULL;
     return &(DO_UPCAST(fdctrl_isabus_t, busdev, dev)->state);
 }
diff --git a/hw/ide/isa.c b/hw/ide/isa.c
index 3205f40..9f0fdd6 100644
--- a/hw/ide/isa.c
+++ b/hw/ide/isa.c
@@ -85,7 +85,7 @@
     qdev_prop_set_uint32(&dev->qdev, "iobase",  iobase);
     qdev_prop_set_uint32(&dev->qdev, "iobase2", iobase2);
     qdev_prop_set_uint32(&dev->qdev, "irq",     isairq);
-    if (qdev_init(&dev->qdev) != 0)
+    if (qdev_init(&dev->qdev) < 0)
         return -1;
 
     s = DO_UPCAST(ISAIDEState, dev, dev);
diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c
index c562bc6..81e7995 100644
--- a/hw/ide/qdev.c
+++ b/hw/ide/qdev.c
@@ -85,7 +85,7 @@
     dev = qdev_create(&bus->qbus, "ide-drive");
     qdev_prop_set_uint32(dev, "unit", unit);
     qdev_prop_set_drive(dev, "drive", drive);
-    if (qdev_init(dev) != 0)
+    if (qdev_init(dev) < 0)
         return NULL;
     return DO_UPCAST(IDEDevice, qdev, dev);
 }
diff --git a/hw/parallel.c b/hw/parallel.c
index 2635edc..92eecb1 100644
--- a/hw/parallel.c
+++ b/hw/parallel.c
@@ -493,7 +493,7 @@
     qdev_prop_set_uint32(&dev->qdev, "iobase", isa_parallel_io[index]);
     qdev_prop_set_uint32(&dev->qdev, "irq", 7);
     qdev_prop_set_chr(&dev->qdev, "chardev", chr);
-    if (qdev_init(&dev->qdev) != 0)
+    if (qdev_init(&dev->qdev) < 0)
         return NULL;
     return &DO_UPCAST(ISAParallelState, dev, dev)->state;
 }
diff --git a/hw/qdev.c b/hw/qdev.c
index ca60923..906e897 100644
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -214,7 +214,7 @@
         qdev_free(qdev);
         return NULL;
     }
-    if (qdev_init(qdev) != 0) {
+    if (qdev_init(qdev) < 0) {
         qemu_error("Error initializing device %s\n", driver);
         return NULL;
     }
diff --git a/hw/serial.c b/hw/serial.c
index e044923..eb14f11 100644
--- a/hw/serial.c
+++ b/hw/serial.c
@@ -759,7 +759,7 @@
     qdev_prop_set_uint32(&dev->qdev, "iobase", isa_serial_io[index]);
     qdev_prop_set_uint32(&dev->qdev, "irq", isa_serial_irq[index]);
     qdev_prop_set_chr(&dev->qdev, "chardev", chr);
-    if (qdev_init(&dev->qdev) != 0)
+    if (qdev_init(&dev->qdev) < 0)
         return NULL;
     return &DO_UPCAST(ISASerialState, dev, dev)->state;
 }
