Skip to content

Commit

Permalink
qdev: Convert to qbus_realize(), qbus_unrealize()
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Markus Armbruster committed Jun 15, 2020
1 parent 4e3a677 commit f1483b4
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 8 deletions.
10 changes: 3 additions & 7 deletions hw/core/qdev.c
Expand Up @@ -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;
}
}
Expand All @@ -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);
Expand All @@ -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)) {
Expand Down
2 changes: 1 addition & 1 deletion hw/pci/pci.c
Expand Up @@ -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,
Expand Down

0 comments on commit f1483b4

Please sign in to comment.