diff options
author | Igor Mammedov <imammedo@redhat.com> | 2013-05-03 15:25:36 +0200 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2013-05-03 12:05:33 -0500 |
commit | 120dc38f6113b676ecef0a2c9e42fc08cace5bdb (patch) | |
tree | 43491d62cb03c0377396d7772fe7771339b2d48c /hw/core/qdev.c | |
parent | 6f32a6b47ef4247ad14dad63c6ee231fdce4c5e9 (diff) | |
download | qemu-120dc38f6113b676ecef0a2c9e42fc08cace5bdb.zip qemu-120dc38f6113b676ecef0a2c9e42fc08cace5bdb.tar.gz qemu-120dc38f6113b676ecef0a2c9e42fc08cace5bdb.tar.bz2 |
qdev: skip bus check for bus-less devices in qdev_unplug()
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>
Message-id: 1367587536-14964-1-git-send-email-imammedo@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/core/qdev.c')
-rw-r--r-- | hw/core/qdev.c | 2 |
1 files changed, 1 insertions, 1 deletions
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; } |