[for-1.5] qdev: skip bus check for bus-less devices in qdev_unplug()

Submitted by Igor Mammedov on May 3, 2013, 1:25 p.m.

Details

Message ID 1367587536-14964-1-git-send-email-imammedo@redhat.com
State New
Headers show

Commit Message

Igor Mammedov May 3, 2013, 1:25 p.m.
Since commit 2f7bd829db "qdev: Fix device_add bus assumptions"
it's possible to device_add bus-less device, but if such device is
unplugged it will dereference NULL parent_bus in qdev_unplug().

Fix it by taking in account that parent_bus might be NULL and
skipping bus check.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
---
 hw/core/qdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Anthony Liguori May 3, 2013, 6:59 p.m.
Applied.  Thanks.

Regards,

Anthony Liguori

Patch hide | download patch | download mbox

diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index ab1d8f5..069ac90 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -208,7 +208,7 @@  void qdev_unplug(DeviceState *dev, Error **errp)
 {
     DeviceClass *dc = DEVICE_GET_CLASS(dev);
 
-    if (!dev->parent_bus->allow_hotplug) {
+    if (dev->parent_bus && !dev->parent_bus->allow_hotplug) {
         error_set(errp, QERR_BUS_NO_HOTPLUG, dev->parent_bus->name);
         return;
     }