qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: Markus Armbruster <armbru@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [PATCH v2 11/58] qdev: Convert uses of qdev_set_parent_bus() with Coccinelle
Date: Tue, 9 Jun 2020 10:08:24 +0200	[thread overview]
Message-ID: <5081f7c1-1d44-1e86-a1f4-afa3a8b66f33@redhat.com> (raw)
In-Reply-To: <20200529134523.8477-12-armbru@redhat.com>

On 5/29/20 3:44 PM, Markus Armbruster wrote:
> In addition to the qdev_create() patterns converted so far, we have a
> qdev_set_parent_bus() pattern.  Mostly when we embed a device in a
> parent device rather than allocating it on the heap.
> 
> This pattern also puts devices in the dangerous "no QOM parent, but
> plugged into bus" state I explained in recent commit "qdev: New
> qdev_new(), qdev_realize(), etc."
> 
> Apply same solution: convert to qdev_realize().  Coccinelle script:
> 
>     @@
>     expression dev, bus, errp;
>     symbol true;
>     @@
>     -    qdev_set_parent_bus(DEVICE(dev), bus);
>          ...
>     -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
>     +    qdev_realize(DEVICE(dev), bus, errp);
> 
>     @ depends on !(file in "qdev-monitor.c") && !(file in "hw/core/qdev.c")@
>     expression dev, bus, errp;
>     symbol true;
>     @@
>     -    qdev_set_parent_bus(dev, bus);
>          ...
>     -    object_property_set_bool(OBJECT(dev), true, "realized", errp);
>     +    qdev_realize(dev, bus, errp);
> 
>     @@
>     expression dev, bus;
>     symbol true;
>     @@
>     -    qdev_set_parent_bus(DEVICE(dev), bus);
>          ...
>     -    qdev_init_nofail(DEVICE(dev));
>     +    qdev_realize(DEVICE(dev), bus, &error_fatal);

I insist the qdev_realize() name is confusing me - all these calls work
on SysBusDevice - but the API change is very good.

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

> 
> Unconverted uses of qdev_set_parent_bus() remain.  They'll be
> converted later in this series.
> 
> Signed-off-by: Markus Armbruster <armbru@redhat.com>
> ---
>  hw/display/virtio-gpu-pci.c     | 3 +--
>  hw/display/virtio-vga.c         | 3 +--
>  hw/i386/amd_iommu.c             | 3 +--
>  hw/isa/piix4.c                  | 3 +--
>  hw/misc/macio/macio.c           | 7 ++-----
>  hw/pci-host/designware.c        | 3 +--
>  hw/pci-host/gpex.c              | 3 +--
>  hw/pci-host/pnv_phb3.c          | 3 +--
>  hw/pci-host/pnv_phb4.c          | 3 +--
>  hw/pci-host/q35.c               | 3 +--
>  hw/pci-host/versatile.c         | 3 +--
>  hw/pci-host/xilinx-pcie.c       | 3 +--
>  hw/s390x/vhost-vsock-ccw.c      | 3 +--
>  hw/s390x/virtio-ccw-9p.c        | 3 +--
>  hw/s390x/virtio-ccw-balloon.c   | 3 +--
>  hw/s390x/virtio-ccw-blk.c       | 3 +--
>  hw/s390x/virtio-ccw-crypto.c    | 3 +--
>  hw/s390x/virtio-ccw-gpu.c       | 3 +--
>  hw/s390x/virtio-ccw-input.c     | 3 +--
>  hw/s390x/virtio-ccw-net.c       | 3 +--
>  hw/s390x/virtio-ccw-rng.c       | 3 +--
>  hw/s390x/virtio-ccw-scsi.c      | 6 ++----
>  hw/s390x/virtio-ccw-serial.c    | 3 +--
>  hw/virtio/vhost-scsi-pci.c      | 3 +--
>  hw/virtio/vhost-user-blk-pci.c  | 3 +--
>  hw/virtio/vhost-user-fs-pci.c   | 3 +--
>  hw/virtio/vhost-user-scsi-pci.c | 3 +--
>  hw/virtio/vhost-vsock-pci.c     | 3 +--
>  hw/virtio/virtio-9p-pci.c       | 3 +--
>  hw/virtio/virtio-balloon-pci.c  | 3 +--
>  hw/virtio/virtio-blk-pci.c      | 3 +--
>  hw/virtio/virtio-crypto-pci.c   | 3 +--
>  hw/virtio/virtio-input-pci.c    | 3 +--
>  hw/virtio/virtio-iommu-pci.c    | 3 +--
>  hw/virtio/virtio-net-pci.c      | 3 +--
>  hw/virtio/virtio-pmem-pci.c     | 3 +--
>  hw/virtio/virtio-rng-pci.c      | 3 +--
>  hw/virtio/virtio-scsi-pci.c     | 3 +--
>  hw/virtio/virtio-serial-pci.c   | 3 +--
>  hw/xen/xen-legacy-backend.c     | 3 +--
>  40 files changed, 42 insertions(+), 85 deletions(-)
[...]



  reply	other threads:[~2020-06-09  8:09 UTC|newest]

Thread overview: 88+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-29 13:44 [PATCH v2 00/58] qdev: Rework how we plug into the parent bus Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 01/58] qdev: Rename qbus_realize() to qbus_init() Markus Armbruster
2020-05-30  7:53   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 02/58] Revert "hw/prep: realize the PCI root bus as part of the prep init" Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 03/58] Revert "hw/versatile: realize the PCI root bus as part of the versatile init" Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 04/58] qdev: New qdev_new(), qdev_realize(), etc Markus Armbruster
2020-05-29 19:04   ` Alistair Francis
2020-06-09  7:59   ` Philippe Mathieu-Daudé
2020-06-09  9:52     ` Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 05/58] qdev: Put qdev_new() to use with Coccinelle Markus Armbruster
2020-06-09  7:45   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 06/58] qdev: Convert to qbus_realize(), qbus_unrealize() Markus Armbruster
2020-06-09  8:13   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 07/58] qdev: Convert to qdev_unrealize() with Coccinelle Markus Armbruster
2020-06-09  8:03   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 08/58] qdev: Convert to qdev_unrealize() manually Markus Armbruster
2020-06-09  8:04   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 09/58] qdev: Convert uses of qdev_create() with Coccinelle Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 10/58] qdev: Convert uses of qdev_create() manually Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 11/58] qdev: Convert uses of qdev_set_parent_bus() with Coccinelle Markus Armbruster
2020-06-09  8:08   ` Philippe Mathieu-Daudé [this message]
2020-05-29 13:44 ` [PATCH v2 12/58] qdev: Convert uses of qdev_set_parent_bus() manually Markus Armbruster
2020-06-09  8:12   ` Philippe Mathieu-Daudé
2020-06-09 10:00     ` Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 13/58] pci: New pci_new(), pci_realize_and_unref() etc Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 14/58] hw/ppc: Eliminate two superfluous QOM casts Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 15/58] pci: Convert uses of pci_create() etc. with Coccinelle Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 16/58] pci: Convert uses of pci_create() etc. manually Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 17/58] pci: pci_create(), pci_create_multifunction() are now unused, drop Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 18/58] isa: New isa_new(), isa_realize_and_unref() etc Markus Armbruster
2020-06-09  8:19   ` Philippe Mathieu-Daudé
2020-06-09  8:26     ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 19/58] isa: Convert uses of isa_create() with Coccinelle Markus Armbruster
2020-05-30  5:07   ` Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 20/58] isa: Convert uses of isa_create(), isa_try_create() manually Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 21/58] isa: isa_create(), isa_try_create() are now unused, drop Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 22/58] ssi: ssi_auto_connect_slaves() never does anything, drop Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 23/58] ssi: Convert uses of ssi_create_slave_no_init() with Coccinelle Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 24/58] ssi: Convert last use of ssi_create_slave_no_init() manually Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 25/58] ssi: ssi_create_slave_no_init() is now unused, drop Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 26/58] usb: New usb_new(), usb_realize_and_unref() Markus Armbruster
2020-06-09  8:21   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 27/58] usb: Convert uses of usb_create() Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 28/58] usb: usb_create() is now unused, drop Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 29/58] usb: Eliminate usb_try_create_simple() Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 30/58] qdev: qdev_create(), qdev_try_create() are now unused, drop Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 31/58] auxbus: Rename aux_init_bus() to aux_bus_init() Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 32/58] auxbus: New aux_bus_realize(), pairing with aux_bus_init() Markus Armbruster
2020-05-29 13:44 ` [PATCH v2 33/58] auxbus: Convert a use of qdev_set_parent_bus() Markus Armbruster
2020-06-09  8:31   ` Philippe Mathieu-Daudé
2020-05-29 13:44 ` [PATCH v2 34/58] auxbus: Eliminate aux_create_slave() Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 35/58] qom: Tidy up a few object_initialize_child() calls Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 36/58] qom: Less verbose object_initialize_child() Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 37/58] macio: Convert use of qdev_set_parent_bus() Markus Armbruster
2020-06-09  8:33   ` Philippe Mathieu-Daudé
2020-05-29 13:45 ` [PATCH v2 38/58] macio: Eliminate macio_init_child_obj() Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 39/58] sysbus: Drop useless OBJECT() in sysbus_init_child_obj() calls Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 40/58] microbit: Tidy up sysbus_init_child_obj() @child argument Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 41/58] sysbus: Tidy up sysbus_init_child_obj()'s @childsize arg, part 1 Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 42/58] hw/arm/armsse: Pass correct child size to sysbus_init_child_obj() Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 43/58] sysbus: Tidy up sysbus_init_child_obj()'s @childsize arg, part 2 Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 44/58] sysbus: New sysbus_realize(), sysbus_realize_and_unref() Markus Armbruster
2020-06-09  8:35   ` Philippe Mathieu-Daudé
2020-05-29 13:45 ` [PATCH v2 45/58] sysbus: Convert to sysbus_realize() etc. with Coccinelle Markus Armbruster
2020-06-09  8:41   ` Philippe Mathieu-Daudé
2020-05-29 13:45 ` [PATCH v2 46/58] qdev: Drop qdev_realize() support for null bus Markus Armbruster
2020-06-09  8:45   ` Philippe Mathieu-Daudé
2020-06-09 10:05     ` Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 47/58] sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 1 Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 48/58] sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 2 Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 49/58] sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 3 Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 50/58] sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 4 Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 51/58] sysbus: sysbus_init_child_obj() is now unused, drop Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 52/58] microbit: Eliminate two local variables in microbit_init() Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 53/58] s390x/event-facility: Simplify creation of SCLP event devices Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 54/58] qdev: Make qdev_realize() support bus-less devices Markus Armbruster
2020-05-30  7:59   ` Philippe Mathieu-Daudé
2020-05-29 13:45 ` [PATCH v2 55/58] qdev: Use qdev_realize() in qdev_device_add() Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 56/58] qdev: Convert bus-less devices to qdev_realize() with Coccinelle Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 57/58] qdev: qdev_init_nofail() is now unused, drop Markus Armbruster
2020-05-29 13:45 ` [PATCH v2 58/58] MAINTAINERS: Make section QOM cover hw/core/*bus.c as well Markus Armbruster
2020-05-30  7:56   ` Philippe Mathieu-Daudé
2020-05-29 13:48 ` [PATCH v2 00/58] qdev: Rework how we plug into the parent bus Markus Armbruster
2020-05-29 23:58 ` no-reply
2020-05-30  4:18 ` no-reply
2020-05-30  4:28 ` no-reply
2020-05-30  5:43 ` no-reply
2020-05-30  6:15 ` no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5081f7c1-1d44-1e86-a1f4-afa3a8b66f33@redhat.com \
    --to=philmd@redhat.com \
    --cc=armbru@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).