summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--hw/pci.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/hw/pci.c b/hw/pci.c
index ba0598ba1d..b904a4ecb6 100644
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -1681,10 +1681,12 @@ static int pci_qdev_init(DeviceState *qdev, DeviceInfo *base)
         do_pci_unregister_device(pci_dev);
         return -1;
     }
-    rc = info->init(pci_dev);
-    if (rc != 0) {
-        do_pci_unregister_device(pci_dev);
-        return rc;
+    if (info->init) {
+        rc = info->init(pci_dev);
+        if (rc != 0) {
+            do_pci_unregister_device(pci_dev);
+            return rc;
+        }
     }
 
     /* rom loading */