mirror of https://gitee.com/openkylin/qemu.git
qdev: Convert to qbus_realize(), qbus_unrealize()
I'm going to convert device realization to qdev_realize() with the help of Coccinelle. Convert bus realization to qbus_realize() first, to get it out of Coccinelle's way. Readability improves. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20200610053247.1583243-7-armbru@redhat.com>
This commit is contained in:
parent
4e3a6778b0
commit
f1483b466d
|
@ -1024,9 +1024,7 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
|
|||
resettable_state_clear(&dev->reset);
|
||||
|
||||
QLIST_FOREACH(bus, &dev->child_bus, sibling) {
|
||||
object_property_set_bool(OBJECT(bus), true, "realized",
|
||||
&local_err);
|
||||
if (local_err != NULL) {
|
||||
if (!qbus_realize(bus, errp)) {
|
||||
goto child_realize_fail;
|
||||
}
|
||||
}
|
||||
|
@ -1051,8 +1049,7 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
|
|||
|
||||
} else if (!value && dev->realized) {
|
||||
QLIST_FOREACH(bus, &dev->child_bus, sibling) {
|
||||
object_property_set_bool(OBJECT(bus), false, "realized",
|
||||
&error_abort);
|
||||
qbus_unrealize(bus);
|
||||
}
|
||||
if (qdev_get_vmsd(dev)) {
|
||||
vmstate_unregister(VMSTATE_IF(dev), qdev_get_vmsd(dev), dev);
|
||||
|
@ -1070,8 +1067,7 @@ static void device_set_realized(Object *obj, bool value, Error **errp)
|
|||
|
||||
child_realize_fail:
|
||||
QLIST_FOREACH(bus, &dev->child_bus, sibling) {
|
||||
object_property_set_bool(OBJECT(bus), false, "realized",
|
||||
&error_abort);
|
||||
qbus_unrealize(bus);
|
||||
}
|
||||
|
||||
if (qdev_get_vmsd(dev)) {
|
||||
|
|
|
@ -456,7 +456,7 @@ void pci_root_bus_cleanup(PCIBus *bus)
|
|||
{
|
||||
pci_bus_uninit(bus);
|
||||
/* the caller of the unplug hotplug handler will delete this device */
|
||||
object_property_set_bool(OBJECT(bus), false, "realized", &error_abort);
|
||||
qbus_unrealize(BUS(bus));
|
||||
}
|
||||
|
||||
void pci_bus_irqs(PCIBus *bus, pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
|
||||
|
|
Loading…
Reference in New Issue