]> git.proxmox.com Git - qemu.git/blobdiff - hw/qdev.c
qdev: Don't assume existence of parent bus on unparenting
[qemu.git] / hw / qdev.c
index f2c248451c0a8b6fc6ea3ed5a0646dde84e3e2e4..e2a5c5735b5f5dd9d2f56f771dee3fa7561896ff 100644 (file)
--- a/hw/qdev.c
+++ b/hw/qdev.c
@@ -698,16 +698,18 @@ static void device_class_base_init(ObjectClass *class, void *data)
     klass->props = NULL;
 }
 
-static void qdev_remove_from_bus(Object *obj)
+static void device_unparent(Object *obj)
 {
     DeviceState *dev = DEVICE(obj);
 
-    bus_remove_child(dev->parent_bus, dev);
+    if (dev->parent_bus != NULL) {
+        bus_remove_child(dev->parent_bus, dev);
+    }
 }
 
 static void device_class_init(ObjectClass *class, void *data)
 {
-    class->unparent = qdev_remove_from_bus;
+    class->unparent = device_unparent;
 }
 
 void device_reset(DeviceState *dev)