diff mbox series

[v2,06/58] qdev: Convert to qbus_realize(), qbus_unrealize()

Message ID 20200529134523.8477-7-armbru@redhat.com (mailing list archive)
State New, archived
Headers show
Series qdev: Rework how we plug into the parent bus | expand

Commit Message

Markus Armbruster May 29, 2020, 1:44 p.m. UTC
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>
---
 hw/core/qdev.c | 10 +++-------
 hw/pci/pci.c   |  2 +-
 2 files changed, 4 insertions(+), 8 deletions(-)

Comments

Philippe Mathieu-Daudé June 9, 2020, 8:13 a.m. UTC | #1
On 5/29/20 3:44 PM, Markus Armbruster wrote:
> 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>
> ---
>  hw/core/qdev.c | 10 +++-------
>  hw/pci/pci.c   |  2 +-
>  2 files changed, 4 insertions(+), 8 deletions(-)
> 
> diff --git a/hw/core/qdev.c b/hw/core/qdev.c
> index f2c5cee278..b7355fbcd0 100644
> --- a/hw/core/qdev.c
> +++ b/hw/core/qdev.c
> @@ -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)) {
> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
> index 70c66965f5..6947c741c3 100644
> --- a/hw/pci/pci.c
> +++ b/hw/pci/pci.c
> @@ -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,
> 

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
diff mbox series

Patch

diff --git a/hw/core/qdev.c b/hw/core/qdev.c
index f2c5cee278..b7355fbcd0 100644
--- a/hw/core/qdev.c
+++ b/hw/core/qdev.c
@@ -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)) {
diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 70c66965f5..6947c741c3 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -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,