summaryrefslogtreecommitdiffstats
path: root/hw/qdev.c
diff options
context:
space:
mode:
authorAnthony Liguori2013-01-08 22:15:57 +0100
committerAnthony Liguori2013-01-08 22:15:57 +0100
commit4b274b1603e1d15ef51aedc8b6b7ebbae0b555ce (patch)
tree8fb03bac9a2c9988f97909f150c27df511b472de /hw/qdev.c
parentMerge remote-tracking branch 'kraxel/usb.75' into staging (diff)
parenttarget-i386: Explicitly set vendor for each built-in cpudef (diff)
downloadqemu-4b274b1603e1d15ef51aedc8b6b7ebbae0b555ce.tar.gz
qemu-4b274b1603e1d15ef51aedc8b6b7ebbae0b555ce.tar.xz
qemu-4b274b1603e1d15ef51aedc8b6b7ebbae0b555ce.zip
Merge remote-tracking branch 'afaerber/qom-cpu' into staging
* afaerber/qom-cpu: target-i386: Explicitly set vendor for each built-in cpudef target-i386: Sanitize AMD's ext2_features at realize time target-i386: Filter out unsupported features at realize time qemu-common.h: Make qemu_init_vcpu() stub static inline target-i386: check/enforce: Eliminate check_feat field target-i386: check/enforce: Check SVM flag support as well target-i386: check/enforce: Check all CPUID.80000001H.EDX bits target-i386: check/enforce: Do not ignore "hypervisor" flag target-i386: check/enforce: Fix CPUID leaf numbers on error messages target-i386: kvm: Enable all supported KVM features for -cpu host target-i386: kvm: -cpu host: Use GET_SUPPORTED_CPUID for SVM features cpu: Change parent type to Device qdev: Don't assume existence of parent bus on unparenting qdev: Include qdev code into *-user, too libqemustub: sysbus_get_default() stub libqemustub: vmstate register/unregister stubs libqemustub: Add qemu_[un]register_reset() stubs Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/qdev.c')
-rw-r--r--hw/qdev.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/hw/qdev.c b/hw/qdev.c
index f2c248451c..e2a5c5735b 100644
--- 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)