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

login
register
mail settings
Submitter Igor Mammedov
Date May 3, 2013, 1:25 p.m.
Message ID <1367587536-14964-1-git-send-email-imammedo@redhat.com>
Download mbox | patch
Permalink /patch/241312/
State New
Headers show

Comments

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(-)
Anthony Liguori - May 3, 2013, 6:59 p.m.
Applied.  Thanks.

Regards,

Anthony Liguori

Patch

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;
     }