[PULL 00/84] QOM patches for 2020-06-15

Markus Armbruster posted 84 patches 5 years, 5 months ago
Test FreeBSD passed
Test asan passed
Test docker-quick@centos7 passed
Test checkpatch passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200615204008.3069956-1-armbru@redhat.com
Maintainers: Eduardo Habkost <ehabkost@redhat.com>, Leif Lindholm <leif@nuviainc.com>, Michael Walle <michael@walle.cc>, Chris Wulff <crwulff@gmail.com>, Matthew Rosato <mjrosato@linux.ibm.com>, Max Filippov <jcmvbkbc@gmail.com>, Juan Quintela <quintela@redhat.com>, Aurelien Jarno <aurelien@aurel32.net>, Fam Zheng <fam@euphon.net>, "Cédric Le Goater" <clg@kaod.org>, Fabien Chouteau <chouteau@adacore.com>, Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>, BALATON Zoltan <balaton@eik.bme.hu>, Sagar Karandikar <sagark@eecs.berkeley.edu>, "Edgar E. Iglesias" <edgar.iglesias@gmail.com>, Andrzej Zaborowski <balrogg@gmail.com>, Andrew Jeffery <andrew@aj.id.au>, Cornelia Huck <cohuck@redhat.com>, Alistair Francis <Alistair.Francis@wdc.com>, Paul Burton <pburton@wavecomp.com>, Stefano Stabellini <sstabellini@kernel.org>, Subbaraya Sundeep <sundeep.lkml@gmail.com>, Helge Deller <deller@gmx.de>, "Marc-André Lureau" <marcandre.lureau@redhat.com>, Radoslaw Biernacki <radoslaw.biernacki@linaro.org>, John Snow <jsnow@redhat.com>, Halil Pasic <pasic@linux.ibm.com>, Anthony Perard <anthony.perard@citrix.com>, Jan Kiszka <jan.kiszka@web.de>, "Michael S. Tsirkin" <mst@redhat.com>, Tony Krowiak <akrowiak@linux.ibm.com>, Joel Stanley <joel@jms.id.au>, Rob Herring <robh@kernel.org>, Paul Durrant <paul@xen.org>, Jason Wang <jasowang@redhat.com>, David Gibson <david@gibson.dropbear.id.au>, Jean-Christophe Dubois <jcd@tribudubois.net>, Peter Maydell <peter.maydell@linaro.org>, "Dr. David Alan Gilbert" <dgilbert@redhat.com>, Samuel Thibault <samuel.thibault@ens-lyon.org>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, David Hildenbrand <david@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Thomas Huth <thuth@redhat.com>, Bastian Koppelmann <kbastian@mail.uni-paderborn.de>, Jia Liu <proljc@gmail.com>, Andrey Smirnov <andrew.smirnov@gmail.com>, KONRAD Frederic <frederic.konrad@adacore.com>, Beniamino Galvani <b.galvani@gmail.com>, Christian Borntraeger <borntraeger@de.ibm.com>, Laurent Vivier <laurent@vivier.eu>, Max Reitz <mreitz@redhat.com>, Aleksandar Markovic <aleksandar.qemu.devel@gmail.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Richard Henderson <rth@twiddle.net>, Aleksandar Rikalo <aleksandar.rikalo@syrmia.com>, Jiaxun Yang <jiaxun.yang@flygoat.com>, Corey Minyard <cminyard@mvista.com>, Huacai Chen <chenhc@lemote.com>, Gerd Hoffmann <kraxel@redhat.com>, Kevin Wolf <kwolf@redhat.com>, Peter Chubb <peter.chubb@nicta.com.au>, Paolo Bonzini <pbonzini@redhat.com>, Magnus Damm <magnus.damm@gmail.com>, Igor Mammedov <imammedo@redhat.com>, Pierre Morel <pmorel@linux.ibm.com>, Alistair Francis <alistair@alistair23.me>, Laszlo Ersek <lersek@redhat.com>, Andrew Baumann <Andrew.Baumann@microsoft.com>, Marek Vasut <marex@denx.de>, "Hervé Poussineau" <hpoussin@reactos.org>, Thomas Huth <huth@tuxfamily.org>, Stafford Horne <shorne@gmail.com>, Igor Mitsyanko <i.mitsyanko@gmail.com>, Palmer Dabbelt <palmer@dabbelt.com>, Artyom Tarasenko <atar4qemu@gmail.com>, Niek Linnenbank <nieklinnenbank@gmail.com>, Antony Pavlov <antonynpavlov@gmail.com>
hw/lm32/lm32.h                           |  13 +--
hw/lm32/milkymist-hw.h                   |  37 +++----
include/hw/arm/aspeed.h                  |   6 ++
include/hw/arm/aspeed_soc.h              |   1 -
include/hw/audio/pcspk.h                 |   5 +-
include/hw/char/cadence_uart.h           |   5 +-
include/hw/char/cmsdk-apb-uart.h         |   4 +-
include/hw/char/pl011.h                  |   9 +-
include/hw/char/xilinx_uartlite.h        |   4 +-
include/hw/cris/etraxfs.h                |   4 +-
include/hw/isa/isa.h                     |   5 +-
include/hw/misc/auxbus.h                 |  18 ++--
include/hw/misc/unimp.h                  |   5 +-
include/hw/net/ne2000-isa.h              |   5 +-
include/hw/pci/pci.h                     |   6 +-
include/hw/ppc/pnv_psi.h                 |   2 +-
include/hw/qdev-core.h                   |  13 ++-
include/hw/riscv/sifive_e.h              |   2 +-
include/hw/riscv/sifive_u.h              |   2 +-
include/hw/ssi/ssi.h                     |   5 -
include/hw/sysbus.h                      |  19 +---
include/hw/timer/cmsdk-apb-timer.h       |   4 +-
include/hw/timer/i8254.h                 |   9 +-
include/hw/usb.h                         |   6 +-
include/qom/object.h                     |  34 ++++--
hw/acpi/pcihp.c                          |   2 +-
hw/acpi/piix4.c                          |   6 +-
hw/alpha/typhoon.c                       |   4 +-
hw/arm/allwinner-a10.c                   |  50 ++++-----
hw/arm/allwinner-h3.c                    |  57 ++++------
hw/arm/armsse.c                          | 174 +++++++++++++------------------
hw/arm/armv7m.c                          |  18 ++--
hw/arm/aspeed.c                          |  60 ++++++++---
hw/arm/aspeed_ast2600.c                  | 133 ++++++++++-------------
hw/arm/aspeed_soc.c                      |  96 +++++++----------
hw/arm/bcm2835_peripherals.c             |  81 ++++++--------
hw/arm/bcm2836.c                         |  17 ++-
hw/arm/cubieboard.c                      |   6 +-
hw/arm/digic.c                           |  16 ++-
hw/arm/digic_boards.c                    |   2 +-
hw/arm/exynos4210.c                      |  48 ++++-----
hw/arm/exynos4_boards.c                  |  11 +-
hw/arm/fsl-imx25.c                       |  64 +++++-------
hw/arm/fsl-imx31.c                       |  43 ++++----
hw/arm/fsl-imx6.c                        |  76 ++++++--------
hw/arm/fsl-imx6ul.c                      | 105 +++++++------------
hw/arm/fsl-imx7.c                        | 100 +++++++-----------
hw/arm/highbank.c                        |  28 ++---
hw/arm/imx25_pdk.c                       |  10 +-
hw/arm/integratorcp.c                    |   6 +-
hw/arm/kzm.c                             |   5 +-
hw/arm/mcimx6ul-evk.c                    |   7 +-
hw/arm/mcimx7d-sabre.c                   |   7 +-
hw/arm/microbit.c                        |  22 ++--
hw/arm/mps2-tz.c                         |  79 ++++++--------
hw/arm/mps2.c                            |  26 ++---
hw/arm/msf2-soc.c                        |  25 ++---
hw/arm/msf2-som.c                        |  12 +--
hw/arm/musca.c                           |  60 +++++------
hw/arm/musicpal.c                        |   8 +-
hw/arm/netduino2.c                       |   4 +-
hw/arm/netduinoplus2.c                   |   4 +-
hw/arm/nrf51_soc.c                       |  30 +++---
hw/arm/nseries.c                         |   8 +-
hw/arm/omap1.c                           |  16 +--
hw/arm/omap2.c                           |  16 +--
hw/arm/orangepi.c                        |   6 +-
hw/arm/pxa2xx.c                          |   8 +-
hw/arm/pxa2xx_gpio.c                     |   5 +-
hw/arm/pxa2xx_pic.c                      |   5 +-
hw/arm/raspi.c                           |  10 +-
hw/arm/realview.c                        |  22 ++--
hw/arm/sabrelite.c                       |   6 +-
hw/arm/sbsa-ref.c                        |  26 ++---
hw/arm/spitz.c                           |   4 +-
hw/arm/stellaris.c                       |  12 +--
hw/arm/stm32f205_soc.c                   |  34 +++---
hw/arm/stm32f405_soc.c                   |  66 ++++++------
hw/arm/strongarm.c                       |   9 +-
hw/arm/versatilepb.c                     |  18 ++--
hw/arm/vexpress.c                        |  18 ++--
hw/arm/virt.c                            |  38 +++----
hw/arm/xilinx_zynq.c                     |  44 ++++----
hw/arm/xlnx-versal-virt.c                |  15 +--
hw/arm/xlnx-versal.c                     |  53 ++++------
hw/arm/xlnx-zcu102.c                     |  26 +++--
hw/arm/xlnx-zynqmp.c                     |  92 +++++++---------
hw/audio/intel-hda.c                     |   4 +-
hw/block/fdc.c                           |  16 +--
hw/block/nand.c                          |   4 +-
hw/block/pflash_cfi01.c                  |   4 +-
hw/block/pflash_cfi02.c                  |   4 +-
hw/block/xen-block.c                     |   4 +-
hw/char/exynos4210_uart.c                |   5 +-
hw/char/mcf_uart.c                       |   5 +-
hw/char/parallel-isa.c                   |   5 +-
hw/char/serial-isa.c                     |   9 +-
hw/char/serial-pci-multi.c               |   8 +-
hw/char/serial-pci.c                     |   7 +-
hw/char/serial.c                         |  14 ++-
hw/char/spapr_vty.c                      |   4 +-
hw/core/bus.c                            |  23 +++-
hw/core/cpu.c                            |   2 +-
hw/core/qdev.c                           | 147 ++++++++++++++------------
hw/core/sysbus.c                         |  27 ++---
hw/cpu/a15mpcore.c                       |   5 +-
hw/cpu/a9mpcore.c                        |  23 ++--
hw/cpu/arm11mpcore.c                     |  18 ++--
hw/cpu/realview_mpcore.c                 |  10 +-
hw/cris/axis_dev88.c                     |   4 +-
hw/display/ati.c                         |   3 +-
hw/display/milkymist-tmu2.c              |   4 +-
hw/display/sm501.c                       |  11 +-
hw/display/virtio-gpu-pci.c              |   3 +-
hw/display/virtio-vga.c                  |   3 +-
hw/display/xlnx_dp.c                     |  13 ++-
hw/dma/i8257.c                           |   9 +-
hw/dma/pxa2xx_dma.c                      |   8 +-
hw/dma/rc4030.c                          |   5 +-
hw/dma/sparc32_dma.c                     |  16 +--
hw/dma/xilinx_axidma.c                   |   9 +-
hw/hppa/dino.c                           |   4 +-
hw/hppa/lasi.c                           |   4 +-
hw/hppa/machine.c                        |   4 +-
hw/hyperv/hyperv.c                       |   2 +-
hw/i2c/core.c                            |   5 +-
hw/i2c/smbus_eeprom.c                    |   4 +-
hw/i386/amd_iommu.c                      |   3 +-
hw/i386/pc.c                             |  12 +--
hw/i386/pc_q35.c                         |  14 +--
hw/i386/pc_sysfw.c                       |   4 +-
hw/i386/x86.c                            |   8 +-
hw/ide/isa.c                             |   5 +-
hw/ide/microdrive.c                      |   3 +-
hw/ide/qdev.c                            |   4 +-
hw/intc/armv7m_nvic.c                    |  15 ++-
hw/intc/exynos4210_gic.c                 |   5 +-
hw/intc/i8259_common.c                   |   5 +-
hw/intc/pnv_xive.c                       |  10 +-
hw/intc/realview_gic.c                   |   4 +-
hw/intc/s390_flic.c                      |   6 +-
hw/intc/spapr_xive.c                     |  10 +-
hw/intc/xics.c                           |   2 +-
hw/intc/xive.c                           |   2 +-
hw/isa/isa-bus.c                         |  27 +++--
hw/isa/isa-superio.c                     |  20 ++--
hw/isa/piix4.c                           |   3 +-
hw/isa/vt82c686.c                        |  13 +--
hw/m68k/mcf5208.c                        |   4 +-
hw/m68k/mcf_intc.c                       |   5 +-
hw/m68k/next-cube.c                      |  12 +--
hw/m68k/q800.c                           |  36 +++----
hw/microblaze/petalogix_ml605_mmu.c      |  26 ++---
hw/microblaze/petalogix_s3adsp1800_mmu.c |  14 +--
hw/microblaze/xlnx-zynqmp-pmu.c          |  21 ++--
hw/mips/boston.c                         |  14 ++-
hw/mips/cps.c                            |  20 ++--
hw/mips/fuloong2e.c                      |   6 +-
hw/mips/gt64xxx_pci.c                    |   5 +-
hw/mips/jazz.c                           |  16 +--
hw/mips/malta.c                          |  10 +-
hw/mips/mipssim.c                        |   8 +-
hw/misc/auxbus.c                         |  22 ++--
hw/misc/empty_slot.c                     |   5 +-
hw/misc/mac_via.c                        |  11 +-
hw/misc/macio/cuda.c                     |  19 ++--
hw/misc/macio/macio.c                    |  59 ++++-------
hw/misc/macio/pmu.c                      |  19 ++--
hw/net/etraxfs_eth.c                     |   4 +-
hw/net/fsl_etsec/etsec.c                 |   5 +-
hw/net/lan9118.c                         |   5 +-
hw/net/lasi_i82596.c                     |   5 +-
hw/net/smc91c111.c                       |   5 +-
hw/net/spapr_llan.c                      |   4 +-
hw/net/xilinx_axienet.c                  |   9 +-
hw/nios2/10m50_devboard.c                |  12 +--
hw/nvram/fw_cfg.c                        |   8 +-
hw/openrisc/openrisc_sim.c               |   8 +-
hw/pci-bridge/dec.c                      |   6 +-
hw/pci-bridge/pci_expander_bridge.c      |   8 +-
hw/pci-host/bonito.c                     |   9 +-
hw/pci-host/designware.c                 |   6 +-
hw/pci-host/gpex.c                       |   6 +-
hw/pci-host/i440fx.c                     |   4 +-
hw/pci-host/pnv_phb3.c                   |  21 ++--
hw/pci-host/pnv_phb4.c                   |  11 +-
hw/pci-host/pnv_phb4_pec.c               |  11 +-
hw/pci-host/prep.c                       |   7 +-
hw/pci-host/q35.c                        |   6 +-
hw/pci-host/sabre.c                      |  13 +--
hw/pci-host/versatile.c                  |   4 +-
hw/pci-host/xilinx-pcie.c                |   6 +-
hw/pci/pci.c                             |  31 +++---
hw/pci/pcie.c                            |   2 +-
hw/pci/shpc.c                            |   2 +-
hw/pcmcia/pxa2xx.c                       |   5 +-
hw/ppc/e500.c                            |  32 +++---
hw/ppc/mac_newworld.c                    |  46 ++++----
hw/ppc/mac_oldworld.c                    |  26 ++---
hw/ppc/pnv.c                             | 103 +++++++-----------
hw/ppc/pnv_bmc.c                         |   2 +-
hw/ppc/pnv_core.c                        |   2 +-
hw/ppc/pnv_psi.c                         |  12 +--
hw/ppc/ppc440_uc.c                       |  10 +-
hw/ppc/prep.c                            |  35 ++++---
hw/ppc/sam460ex.c                        |   4 +-
hw/ppc/spapr.c                           |  27 +++--
hw/ppc/spapr_cpu_core.c                  |   2 +-
hw/ppc/spapr_drc.c                       |   2 +-
hw/ppc/spapr_iommu.c                     |   2 +-
hw/ppc/spapr_irq.c                       |   6 +-
hw/ppc/spapr_pci.c                       |   3 +-
hw/ppc/spapr_vio.c                       |   4 +-
hw/ppc/virtex_ml507.c                    |   9 +-
hw/riscv/opentitan.c                     |  13 +--
hw/riscv/riscv_hart.c                    |   7 +-
hw/riscv/sifive_clint.c                  |   5 +-
hw/riscv/sifive_e.c                      |  21 ++--
hw/riscv/sifive_e_prci.c                 |   5 +-
hw/riscv/sifive_plic.c                   |   5 +-
hw/riscv/sifive_test.c                   |   5 +-
hw/riscv/sifive_u.c                      |  54 ++++------
hw/riscv/spike.c                         |   7 +-
hw/riscv/virt.c                          |  15 ++-
hw/rtc/m48t59-isa.c                      |   7 +-
hw/rtc/m48t59.c                          |   5 +-
hw/rtc/mc146818rtc.c                     |   4 +-
hw/rtc/sun4v-rtc.c                       |   5 +-
hw/s390x/ap-bridge.c                     |   4 +-
hw/s390x/css-bridge.c                    |   6 +-
hw/s390x/event-facility.c                |  64 ++++++------
hw/s390x/s390-pci-bus.c                  |   8 +-
hw/s390x/s390-skeys.c                    |   2 +-
hw/s390x/s390-stattrib.c                 |   2 +-
hw/s390x/s390-virtio-ccw.c               |  16 +--
hw/s390x/sclp.c                          |  12 +--
hw/s390x/tod.c                           |   2 +-
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/scsi/scsi-bus.c                       |   4 +-
hw/scsi/spapr_vscsi.c                    |   4 +-
hw/sd/aspeed_sdhci.c                     |   2 +-
hw/sd/milkymist-memcard.c                |   4 +-
hw/sd/pxa2xx_mmci.c                      |   7 +-
hw/sd/sd.c                               |  40 ++++---
hw/sd/ssi-sd.c                           |   4 +-
hw/sh4/r2d.c                             |  12 +--
hw/sparc/leon3.c                         |  20 ++--
hw/sparc/sun4m.c                         |  64 ++++++------
hw/sparc64/sun4u.c                       |  50 +++++----
hw/ssi/aspeed_smc.c                      |   1 -
hw/ssi/imx_spi.c                         |   2 -
hw/ssi/mss-spi.c                         |   1 -
hw/ssi/ssi.c                             |  43 +-------
hw/ssi/xilinx_spi.c                      |   1 -
hw/ssi/xilinx_spips.c                    |   4 -
hw/usb/bus.c                             |  52 ++++-----
hw/usb/dev-serial.c                      |   4 +-
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-user-vsock-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/virtio/virtio.c                       |   5 +-
hw/xen/xen-bus.c                         |   4 +-
hw/xen/xen-legacy-backend.c              |   7 +-
hw/xtensa/virt.c                         |   4 +-
hw/xtensa/xtfpga.c                       |   8 +-
migration/migration.c                    |   2 +-
qdev-monitor.c                           |   8 +-
qom/object.c                             |  23 ++--
qom/qom-hmp-cmds.c                       |  24 +++--
target/i386/cpu.c                        |   3 +-
tests/test-qdev-global-props.c           |   9 +-
MAINTAINERS                              |   4 +
296 files changed, 2127 insertions(+), 2452 deletions(-)
[PULL 00/84] QOM patches for 2020-06-15
Posted by Markus Armbruster 5 years, 5 months ago
The following changes since commit 7d3660e79830a069f1848bb4fa1cdf8f666424fb:

  Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2020-06-12 23:06:22 +0100)

are available in the Git repository at:

  git://repo.or.cz/qemu/armbru.git tags/pull-qom-2020-06-15

for you to fetch changes up to b77b5b3dc7a4730d804090d359c57d33573cf85a:

  MAINTAINERS: Make section QOM cover hw/core/*bus.c as well (2020-06-15 22:06:04 +0200)

----------------------------------------------------------------
QOM patches for 2020-06-15

* Make "info qom-tree" show children sorted
* Fixes around device realization
* Rework how we plug into devices into their parent bus

----------------------------------------------------------------
Cédric Le Goater (2):
      arm/aspeed: Compute the number of CPUs from the SoC definition
      arm/aspeed: Rework NIC attachment

Markus Armbruster (82):
      qom: Constify object_get_canonical_path{,_component}()'s parameter
      qom: Make "info qom-tree" show children sorted
      arm/stm32f405: Fix realization of "stm32f2xx-adc" devices
      display/xlnx_dp: Fix to realize "i2c-ddc" and "aux-to-i2c-bridge"
      sd/pxa2xx_mmci: Fix to realize "pxa2xx-mmci" device
      armv7m: Delete unused "ARM,bitband-memory" devices
      auxbus: Fix aux-to-i2c-bridge to be a subtype of aux-slave
      mac_via: Fix to realize "mos6522-q800-via*" devices
      macio: Fix to realize "mos6522-cuda" and "mos6522-pmu" devices
      macio: Delete unused "macio-gpio" devices
      pnv/phb4: Delete unused "pnv-phb4-pec-stack" devices
      MAINTAINERS: Make section PowerNV cover pci-host/pnv* as well
      ppc4xx: Drop redundant device realization
      macio: Put "macio-nvram" device on the macio bus
      macio: Fix macio-bus to be a subtype of System bus
      ppc/pnv: Put "*-pnv-chip" and "pnv-xive" on the main system bus
      pnv/psi: Correct the pnv-psi* devices not to be sysbus devices
      display/sm501 display/ati: Fix to realize "i2c-ddc"
      riscv: Fix to put "riscv.hart_array" devices on sysbus
      riscv: Fix type of SiFive[EU]SocState, member parent_obj
      sparc/leon3: Fix to put grlib,* devices on sysbus
      qdev: Assert devices are plugged into a bus that can take them
      sd: Hide the qdev-but-not-quite thing created by sd_init()
      qdev: Assert onboard devices all get realized properly
      qdev: Rename qbus_realize() to qbus_init()
      Revert "hw/prep: realize the PCI root bus as part of the prep init"
      Revert "hw/versatile: realize the PCI root bus as part of the versatile init"
      qdev: New qdev_new(), qdev_realize(), etc.
      qdev: Put qdev_new() to use with Coccinelle
      qdev: Convert to qbus_realize(), qbus_unrealize()
      qdev: Convert to qdev_unrealize() with Coccinelle
      qdev: Convert to qdev_unrealize() manually
      qdev: Convert uses of qdev_create() with Coccinelle
      qdev: Convert uses of qdev_create() manually
      qdev: Convert uses of qdev_set_parent_bus() with Coccinelle
      qdev: Convert uses of qdev_set_parent_bus() manually
      pci: New pci_new(), pci_realize_and_unref() etc.
      hw/ppc: Eliminate two superfluous QOM casts
      pci: Convert uses of pci_create() etc. with Coccinelle
      pci: Convert uses of pci_create() etc. manually
      pci: pci_create(), pci_create_multifunction() are now unused, drop
      isa: New isa_new(), isa_realize_and_unref() etc.
      isa: Convert uses of isa_create() with Coccinelle
      isa: Convert uses of isa_create(), isa_try_create() manually
      isa: isa_create(), isa_try_create() are now unused, drop
      ssi: ssi_auto_connect_slaves() never does anything, drop
      ssi: Convert uses of ssi_create_slave_no_init() with Coccinelle
      ssi: Convert last use of ssi_create_slave_no_init() manually
      ssi: ssi_create_slave_no_init() is now unused, drop
      usb: New usb_new(), usb_realize_and_unref()
      usb: Convert uses of usb_create()
      usb: usb_create() is now unused, drop
      usb: Eliminate usb_try_create_simple()
      qdev: qdev_create(), qdev_try_create() are now unused, drop
      auxbus: Rename aux_init_bus() to aux_bus_init()
      auxbus: New aux_bus_realize(), pairing with aux_bus_init()
      auxbus: Convert a use of qdev_set_parent_bus()
      auxbus: Eliminate aux_create_slave()
      qom: Tidy up a few object_initialize_child() calls
      qom: Less verbose object_initialize_child()
      macio: Convert use of qdev_set_parent_bus()
      macio: Eliminate macio_init_child_obj()
      sysbus: Drop useless OBJECT() in sysbus_init_child_obj() calls
      microbit: Tidy up sysbus_init_child_obj() @child argument
      sysbus: Tidy up sysbus_init_child_obj()'s @childsize arg, part 1
      hw/arm/armsse: Pass correct child size to sysbus_init_child_obj()
      sysbus: Tidy up sysbus_init_child_obj()'s @childsize arg, part 2
      sysbus: New sysbus_realize(), sysbus_realize_and_unref()
      sysbus: Convert to sysbus_realize() etc. with Coccinelle
      qdev: Drop qdev_realize() support for null bus
      sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 1
      sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 2
      sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 3
      sysbus: Convert qdev_set_parent_bus() use with Coccinelle, part 4
      sysbus: sysbus_init_child_obj() is now unused, drop
      microbit: Eliminate two local variables in microbit_init()
      s390x/event-facility: Simplify creation of SCLP event devices
      qdev: Make qdev_realize() support bus-less devices
      qdev: Use qdev_realize() in qdev_device_add()
      qdev: Convert bus-less devices to qdev_realize() with Coccinelle
      qdev: qdev_init_nofail() is now unused, drop
      MAINTAINERS: Make section QOM cover hw/core/*bus.c as well

 hw/lm32/lm32.h                           |  13 +--
 hw/lm32/milkymist-hw.h                   |  37 +++----
 include/hw/arm/aspeed.h                  |   6 ++
 include/hw/arm/aspeed_soc.h              |   1 -
 include/hw/audio/pcspk.h                 |   5 +-
 include/hw/char/cadence_uart.h           |   5 +-
 include/hw/char/cmsdk-apb-uart.h         |   4 +-
 include/hw/char/pl011.h                  |   9 +-
 include/hw/char/xilinx_uartlite.h        |   4 +-
 include/hw/cris/etraxfs.h                |   4 +-
 include/hw/isa/isa.h                     |   5 +-
 include/hw/misc/auxbus.h                 |  18 ++--
 include/hw/misc/unimp.h                  |   5 +-
 include/hw/net/ne2000-isa.h              |   5 +-
 include/hw/pci/pci.h                     |   6 +-
 include/hw/ppc/pnv_psi.h                 |   2 +-
 include/hw/qdev-core.h                   |  13 ++-
 include/hw/riscv/sifive_e.h              |   2 +-
 include/hw/riscv/sifive_u.h              |   2 +-
 include/hw/ssi/ssi.h                     |   5 -
 include/hw/sysbus.h                      |  19 +---
 include/hw/timer/cmsdk-apb-timer.h       |   4 +-
 include/hw/timer/i8254.h                 |   9 +-
 include/hw/usb.h                         |   6 +-
 include/qom/object.h                     |  34 ++++--
 hw/acpi/pcihp.c                          |   2 +-
 hw/acpi/piix4.c                          |   6 +-
 hw/alpha/typhoon.c                       |   4 +-
 hw/arm/allwinner-a10.c                   |  50 ++++-----
 hw/arm/allwinner-h3.c                    |  57 ++++------
 hw/arm/armsse.c                          | 174 +++++++++++++------------------
 hw/arm/armv7m.c                          |  18 ++--
 hw/arm/aspeed.c                          |  60 ++++++++---
 hw/arm/aspeed_ast2600.c                  | 133 ++++++++++-------------
 hw/arm/aspeed_soc.c                      |  96 +++++++----------
 hw/arm/bcm2835_peripherals.c             |  81 ++++++--------
 hw/arm/bcm2836.c                         |  17 ++-
 hw/arm/cubieboard.c                      |   6 +-
 hw/arm/digic.c                           |  16 ++-
 hw/arm/digic_boards.c                    |   2 +-
 hw/arm/exynos4210.c                      |  48 ++++-----
 hw/arm/exynos4_boards.c                  |  11 +-
 hw/arm/fsl-imx25.c                       |  64 +++++-------
 hw/arm/fsl-imx31.c                       |  43 ++++----
 hw/arm/fsl-imx6.c                        |  76 ++++++--------
 hw/arm/fsl-imx6ul.c                      | 105 +++++++------------
 hw/arm/fsl-imx7.c                        | 100 +++++++-----------
 hw/arm/highbank.c                        |  28 ++---
 hw/arm/imx25_pdk.c                       |  10 +-
 hw/arm/integratorcp.c                    |   6 +-
 hw/arm/kzm.c                             |   5 +-
 hw/arm/mcimx6ul-evk.c                    |   7 +-
 hw/arm/mcimx7d-sabre.c                   |   7 +-
 hw/arm/microbit.c                        |  22 ++--
 hw/arm/mps2-tz.c                         |  79 ++++++--------
 hw/arm/mps2.c                            |  26 ++---
 hw/arm/msf2-soc.c                        |  25 ++---
 hw/arm/msf2-som.c                        |  12 +--
 hw/arm/musca.c                           |  60 +++++------
 hw/arm/musicpal.c                        |   8 +-
 hw/arm/netduino2.c                       |   4 +-
 hw/arm/netduinoplus2.c                   |   4 +-
 hw/arm/nrf51_soc.c                       |  30 +++---
 hw/arm/nseries.c                         |   8 +-
 hw/arm/omap1.c                           |  16 +--
 hw/arm/omap2.c                           |  16 +--
 hw/arm/orangepi.c                        |   6 +-
 hw/arm/pxa2xx.c                          |   8 +-
 hw/arm/pxa2xx_gpio.c                     |   5 +-
 hw/arm/pxa2xx_pic.c                      |   5 +-
 hw/arm/raspi.c                           |  10 +-
 hw/arm/realview.c                        |  22 ++--
 hw/arm/sabrelite.c                       |   6 +-
 hw/arm/sbsa-ref.c                        |  26 ++---
 hw/arm/spitz.c                           |   4 +-
 hw/arm/stellaris.c                       |  12 +--
 hw/arm/stm32f205_soc.c                   |  34 +++---
 hw/arm/stm32f405_soc.c                   |  66 ++++++------
 hw/arm/strongarm.c                       |   9 +-
 hw/arm/versatilepb.c                     |  18 ++--
 hw/arm/vexpress.c                        |  18 ++--
 hw/arm/virt.c                            |  38 +++----
 hw/arm/xilinx_zynq.c                     |  44 ++++----
 hw/arm/xlnx-versal-virt.c                |  15 +--
 hw/arm/xlnx-versal.c                     |  53 ++++------
 hw/arm/xlnx-zcu102.c                     |  26 +++--
 hw/arm/xlnx-zynqmp.c                     |  92 +++++++---------
 hw/audio/intel-hda.c                     |   4 +-
 hw/block/fdc.c                           |  16 +--
 hw/block/nand.c                          |   4 +-
 hw/block/pflash_cfi01.c                  |   4 +-
 hw/block/pflash_cfi02.c                  |   4 +-
 hw/block/xen-block.c                     |   4 +-
 hw/char/exynos4210_uart.c                |   5 +-
 hw/char/mcf_uart.c                       |   5 +-
 hw/char/parallel-isa.c                   |   5 +-
 hw/char/serial-isa.c                     |   9 +-
 hw/char/serial-pci-multi.c               |   8 +-
 hw/char/serial-pci.c                     |   7 +-
 hw/char/serial.c                         |  14 ++-
 hw/char/spapr_vty.c                      |   4 +-
 hw/core/bus.c                            |  23 +++-
 hw/core/cpu.c                            |   2 +-
 hw/core/qdev.c                           | 147 ++++++++++++++------------
 hw/core/sysbus.c                         |  27 ++---
 hw/cpu/a15mpcore.c                       |   5 +-
 hw/cpu/a9mpcore.c                        |  23 ++--
 hw/cpu/arm11mpcore.c                     |  18 ++--
 hw/cpu/realview_mpcore.c                 |  10 +-
 hw/cris/axis_dev88.c                     |   4 +-
 hw/display/ati.c                         |   3 +-
 hw/display/milkymist-tmu2.c              |   4 +-
 hw/display/sm501.c                       |  11 +-
 hw/display/virtio-gpu-pci.c              |   3 +-
 hw/display/virtio-vga.c                  |   3 +-
 hw/display/xlnx_dp.c                     |  13 ++-
 hw/dma/i8257.c                           |   9 +-
 hw/dma/pxa2xx_dma.c                      |   8 +-
 hw/dma/rc4030.c                          |   5 +-
 hw/dma/sparc32_dma.c                     |  16 +--
 hw/dma/xilinx_axidma.c                   |   9 +-
 hw/hppa/dino.c                           |   4 +-
 hw/hppa/lasi.c                           |   4 +-
 hw/hppa/machine.c                        |   4 +-
 hw/hyperv/hyperv.c                       |   2 +-
 hw/i2c/core.c                            |   5 +-
 hw/i2c/smbus_eeprom.c                    |   4 +-
 hw/i386/amd_iommu.c                      |   3 +-
 hw/i386/pc.c                             |  12 +--
 hw/i386/pc_q35.c                         |  14 +--
 hw/i386/pc_sysfw.c                       |   4 +-
 hw/i386/x86.c                            |   8 +-
 hw/ide/isa.c                             |   5 +-
 hw/ide/microdrive.c                      |   3 +-
 hw/ide/qdev.c                            |   4 +-
 hw/intc/armv7m_nvic.c                    |  15 ++-
 hw/intc/exynos4210_gic.c                 |   5 +-
 hw/intc/i8259_common.c                   |   5 +-
 hw/intc/pnv_xive.c                       |  10 +-
 hw/intc/realview_gic.c                   |   4 +-
 hw/intc/s390_flic.c                      |   6 +-
 hw/intc/spapr_xive.c                     |  10 +-
 hw/intc/xics.c                           |   2 +-
 hw/intc/xive.c                           |   2 +-
 hw/isa/isa-bus.c                         |  27 +++--
 hw/isa/isa-superio.c                     |  20 ++--
 hw/isa/piix4.c                           |   3 +-
 hw/isa/vt82c686.c                        |  13 +--
 hw/m68k/mcf5208.c                        |   4 +-
 hw/m68k/mcf_intc.c                       |   5 +-
 hw/m68k/next-cube.c                      |  12 +--
 hw/m68k/q800.c                           |  36 +++----
 hw/microblaze/petalogix_ml605_mmu.c      |  26 ++---
 hw/microblaze/petalogix_s3adsp1800_mmu.c |  14 +--
 hw/microblaze/xlnx-zynqmp-pmu.c          |  21 ++--
 hw/mips/boston.c                         |  14 ++-
 hw/mips/cps.c                            |  20 ++--
 hw/mips/fuloong2e.c                      |   6 +-
 hw/mips/gt64xxx_pci.c                    |   5 +-
 hw/mips/jazz.c                           |  16 +--
 hw/mips/malta.c                          |  10 +-
 hw/mips/mipssim.c                        |   8 +-
 hw/misc/auxbus.c                         |  22 ++--
 hw/misc/empty_slot.c                     |   5 +-
 hw/misc/mac_via.c                        |  11 +-
 hw/misc/macio/cuda.c                     |  19 ++--
 hw/misc/macio/macio.c                    |  59 ++++-------
 hw/misc/macio/pmu.c                      |  19 ++--
 hw/net/etraxfs_eth.c                     |   4 +-
 hw/net/fsl_etsec/etsec.c                 |   5 +-
 hw/net/lan9118.c                         |   5 +-
 hw/net/lasi_i82596.c                     |   5 +-
 hw/net/smc91c111.c                       |   5 +-
 hw/net/spapr_llan.c                      |   4 +-
 hw/net/xilinx_axienet.c                  |   9 +-
 hw/nios2/10m50_devboard.c                |  12 +--
 hw/nvram/fw_cfg.c                        |   8 +-
 hw/openrisc/openrisc_sim.c               |   8 +-
 hw/pci-bridge/dec.c                      |   6 +-
 hw/pci-bridge/pci_expander_bridge.c      |   8 +-
 hw/pci-host/bonito.c                     |   9 +-
 hw/pci-host/designware.c                 |   6 +-
 hw/pci-host/gpex.c                       |   6 +-
 hw/pci-host/i440fx.c                     |   4 +-
 hw/pci-host/pnv_phb3.c                   |  21 ++--
 hw/pci-host/pnv_phb4.c                   |  11 +-
 hw/pci-host/pnv_phb4_pec.c               |  11 +-
 hw/pci-host/prep.c                       |   7 +-
 hw/pci-host/q35.c                        |   6 +-
 hw/pci-host/sabre.c                      |  13 +--
 hw/pci-host/versatile.c                  |   4 +-
 hw/pci-host/xilinx-pcie.c                |   6 +-
 hw/pci/pci.c                             |  31 +++---
 hw/pci/pcie.c                            |   2 +-
 hw/pci/shpc.c                            |   2 +-
 hw/pcmcia/pxa2xx.c                       |   5 +-
 hw/ppc/e500.c                            |  32 +++---
 hw/ppc/mac_newworld.c                    |  46 ++++----
 hw/ppc/mac_oldworld.c                    |  26 ++---
 hw/ppc/pnv.c                             | 103 +++++++-----------
 hw/ppc/pnv_bmc.c                         |   2 +-
 hw/ppc/pnv_core.c                        |   2 +-
 hw/ppc/pnv_psi.c                         |  12 +--
 hw/ppc/ppc440_uc.c                       |  10 +-
 hw/ppc/prep.c                            |  35 ++++---
 hw/ppc/sam460ex.c                        |   4 +-
 hw/ppc/spapr.c                           |  27 +++--
 hw/ppc/spapr_cpu_core.c                  |   2 +-
 hw/ppc/spapr_drc.c                       |   2 +-
 hw/ppc/spapr_iommu.c                     |   2 +-
 hw/ppc/spapr_irq.c                       |   6 +-
 hw/ppc/spapr_pci.c                       |   3 +-
 hw/ppc/spapr_vio.c                       |   4 +-
 hw/ppc/virtex_ml507.c                    |   9 +-
 hw/riscv/opentitan.c                     |  13 +--
 hw/riscv/riscv_hart.c                    |   7 +-
 hw/riscv/sifive_clint.c                  |   5 +-
 hw/riscv/sifive_e.c                      |  21 ++--
 hw/riscv/sifive_e_prci.c                 |   5 +-
 hw/riscv/sifive_plic.c                   |   5 +-
 hw/riscv/sifive_test.c                   |   5 +-
 hw/riscv/sifive_u.c                      |  54 ++++------
 hw/riscv/spike.c                         |   7 +-
 hw/riscv/virt.c                          |  15 ++-
 hw/rtc/m48t59-isa.c                      |   7 +-
 hw/rtc/m48t59.c                          |   5 +-
 hw/rtc/mc146818rtc.c                     |   4 +-
 hw/rtc/sun4v-rtc.c                       |   5 +-
 hw/s390x/ap-bridge.c                     |   4 +-
 hw/s390x/css-bridge.c                    |   6 +-
 hw/s390x/event-facility.c                |  64 ++++++------
 hw/s390x/s390-pci-bus.c                  |   8 +-
 hw/s390x/s390-skeys.c                    |   2 +-
 hw/s390x/s390-stattrib.c                 |   2 +-
 hw/s390x/s390-virtio-ccw.c               |  16 +--
 hw/s390x/sclp.c                          |  12 +--
 hw/s390x/tod.c                           |   2 +-
 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/scsi/scsi-bus.c                       |   4 +-
 hw/scsi/spapr_vscsi.c                    |   4 +-
 hw/sd/aspeed_sdhci.c                     |   2 +-
 hw/sd/milkymist-memcard.c                |   4 +-
 hw/sd/pxa2xx_mmci.c                      |   7 +-
 hw/sd/sd.c                               |  40 ++++---
 hw/sd/ssi-sd.c                           |   4 +-
 hw/sh4/r2d.c                             |  12 +--
 hw/sparc/leon3.c                         |  20 ++--
 hw/sparc/sun4m.c                         |  64 ++++++------
 hw/sparc64/sun4u.c                       |  50 +++++----
 hw/ssi/aspeed_smc.c                      |   1 -
 hw/ssi/imx_spi.c                         |   2 -
 hw/ssi/mss-spi.c                         |   1 -
 hw/ssi/ssi.c                             |  43 +-------
 hw/ssi/xilinx_spi.c                      |   1 -
 hw/ssi/xilinx_spips.c                    |   4 -
 hw/usb/bus.c                             |  52 ++++-----
 hw/usb/dev-serial.c                      |   4 +-
 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-user-vsock-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/virtio/virtio.c                       |   5 +-
 hw/xen/xen-bus.c                         |   4 +-
 hw/xen/xen-legacy-backend.c              |   7 +-
 hw/xtensa/virt.c                         |   4 +-
 hw/xtensa/xtfpga.c                       |   8 +-
 migration/migration.c                    |   2 +-
 qdev-monitor.c                           |   8 +-
 qom/object.c                             |  23 ++--
 qom/qom-hmp-cmds.c                       |  24 +++--
 target/i386/cpu.c                        |   3 +-
 tests/test-qdev-global-props.c           |   9 +-
 MAINTAINERS                              |   4 +
 296 files changed, 2127 insertions(+), 2452 deletions(-)

-- 
2.26.2


Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Peter Maydell 5 years, 5 months ago
On Mon, 15 Jun 2020 at 21:43, Markus Armbruster <armbru@redhat.com> wrote:
>
> The following changes since commit 7d3660e79830a069f1848bb4fa1cdf8f666424fb:
>
>   Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2020-06-12 23:06:22 +0100)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/armbru.git tags/pull-qom-2020-06-15
>
> for you to fetch changes up to b77b5b3dc7a4730d804090d359c57d33573cf85a:
>
>   MAINTAINERS: Make section QOM cover hw/core/*bus.c as well (2020-06-15 22:06:04 +0200)
>
> ----------------------------------------------------------------
> QOM patches for 2020-06-15
>
> * Make "info qom-tree" show children sorted
> * Fixes around device realization
> * Rework how we plug into devices into their parent bus


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.

-- PMM

Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Thomas Huth 5 years, 5 months ago
On 16/06/2020 14.26, Peter Maydell wrote:
> On Mon, 15 Jun 2020 at 21:43, Markus Armbruster <armbru@redhat.com> wrote:
>>
>> The following changes since commit 7d3660e79830a069f1848bb4fa1cdf8f666424fb:
>>
>>   Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2020-06-12 23:06:22 +0100)
>>
>> are available in the Git repository at:
>>
>>   git://repo.or.cz/qemu/armbru.git tags/pull-qom-2020-06-15
>>
>> for you to fetch changes up to b77b5b3dc7a4730d804090d359c57d33573cf85a:
>>
>>   MAINTAINERS: Make section QOM cover hw/core/*bus.c as well (2020-06-15 22:06:04 +0200)
>>
>> ----------------------------------------------------------------
>> QOM patches for 2020-06-15
>>
>> * Make "info qom-tree" show children sorted
>> * Fixes around device realization
>> * Rework how we plug into devices into their parent bus
> 
> 
> Applied, thanks.
> 
> Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
> for any user-visible changes.

This pull requests (with the patch "qdev: qdev_init_nofail() is now
unused, drop") apparently broke some iotests:

 https://gitlab.com/qemu-project/qemu/-/jobs/597414772#L4376

Can you please have a look?

 Thanks,
  Thomas


Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Philippe Mathieu-Daudé 5 years, 5 months ago
On 6/16/20 5:26 PM, Thomas Huth wrote:
> On 16/06/2020 14.26, Peter Maydell wrote:
>> On Mon, 15 Jun 2020 at 21:43, Markus Armbruster <armbru@redhat.com> wrote:
>>>
>>> The following changes since commit 7d3660e79830a069f1848bb4fa1cdf8f666424fb:
>>>
>>>   Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2020-06-12 23:06:22 +0100)
>>>
>>> are available in the Git repository at:
>>>
>>>   git://repo.or.cz/qemu/armbru.git tags/pull-qom-2020-06-15
>>>
>>> for you to fetch changes up to b77b5b3dc7a4730d804090d359c57d33573cf85a:
>>>
>>>   MAINTAINERS: Make section QOM cover hw/core/*bus.c as well (2020-06-15 22:06:04 +0200)
>>>
>>> ----------------------------------------------------------------
>>> QOM patches for 2020-06-15
>>>
>>> * Make "info qom-tree" show children sorted
>>> * Fixes around device realization
>>> * Rework how we plug into devices into their parent bus
>>
>>
>> Applied, thanks.
>>
>> Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
>> for any user-visible changes.
> 
> This pull requests (with the patch "qdev: qdev_init_nofail() is now
> unused, drop") apparently broke some iotests:
> 
>  https://gitlab.com/qemu-project/qemu/-/jobs/597414772#L4376
> 
> Can you please have a look?

Fix sent:
https://lists.gnu.org/archive/html/qemu-devel/2020-06/msg04730.html

> 
>  Thanks,
>   Thomas
> 
> 


Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Peter Maydell 5 years, 4 months ago
On Mon, 15 Jun 2020 at 21:43, Markus Armbruster <armbru@redhat.com> wrote:
>
> The following changes since commit 7d3660e79830a069f1848bb4fa1cdf8f666424fb:
>
>   Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2020-06-12 23:06:22 +0100)
>
> are available in the Git repository at:
>
>   git://repo.or.cz/qemu/armbru.git tags/pull-qom-2020-06-15
>
> for you to fetch changes up to b77b5b3dc7a4730d804090d359c57d33573cf85a:
>
>   MAINTAINERS: Make section QOM cover hw/core/*bus.c as well (2020-06-15 22:06:04 +0200)
>
> ----------------------------------------------------------------
> QOM patches for 2020-06-15
>
> * Make "info qom-tree" show children sorted
> * Fixes around device realization
> * Rework how we plug into devices into their parent bus

Hi. I've just noticed that this commit added new global-scope
functions to header files without documentation comments, eg

bool qdev_realize_and_unref(DeviceState *dev, BusState *bus, Error **errp);

Please could you provide some follow-up patches that document them?
I don't think we have any hope of getting people to follow whatever
the correct new way to create/configure/realize devices is if we
don't document it :-(   [Concrete example: I now have no idea
how this is supposed to work after this patchset.]

thanks
-- PMM

Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Markus Armbruster 5 years, 4 months ago
Peter Maydell <peter.maydell@linaro.org> writes:

> On Mon, 15 Jun 2020 at 21:43, Markus Armbruster <armbru@redhat.com> wrote:
>>
>> The following changes since commit 7d3660e79830a069f1848bb4fa1cdf8f666424fb:
>>
>>   Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging (2020-06-12 23:06:22 +0100)
>>
>> are available in the Git repository at:
>>
>>   git://repo.or.cz/qemu/armbru.git tags/pull-qom-2020-06-15
>>
>> for you to fetch changes up to b77b5b3dc7a4730d804090d359c57d33573cf85a:
>>
>>   MAINTAINERS: Make section QOM cover hw/core/*bus.c as well (2020-06-15 22:06:04 +0200)
>>
>> ----------------------------------------------------------------
>> QOM patches for 2020-06-15
>>
>> * Make "info qom-tree" show children sorted
>> * Fixes around device realization
>> * Rework how we plug into devices into their parent bus
>
> Hi. I've just noticed that this commit added new global-scope
> functions to header files without documentation comments, eg
>
> bool qdev_realize_and_unref(DeviceState *dev, BusState *bus, Error **errp);

They actually have doc comments: next to their definition, just like the
functions they replace.

We've argued about whether to put them next to definitions or next to
declarations several times, and I'd prefer not to rehash all that now.

QEMU uses different styles of function comments.  I always try to make
my new function comments consistent with nearby existing ones, if any.

Sadly, not everybody does.  Qdev used to be locally consistent, but
we've let it degenerate into the current mess.  It's what happens when
major infrastructure subsystems have to go without a maintainer for
years.

> Please could you provide some follow-up patches that document them?
> I don't think we have any hope of getting people to follow whatever
> the correct new way to create/configure/realize devices is if we
> don't document it :-(   [Concrete example: I now have no idea
> how this is supposed to work after this patchset.]

Please check out my function comments, and if they leave you confused,
let's talk about improvements.

I'm content to use comment placement / formatting I dislike to make my
code blend in, but I'm not willing to do conversion work from a style I
like to style I dislike.  That's a job for someone who won't feel icky
afterwards :)


Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Peter Maydell 5 years, 4 months ago
On Sat, 27 Jun 2020 at 12:53, Markus Armbruster <armbru@redhat.com> wrote:
> Peter Maydell <peter.maydell@linaro.org> writes:
> > Hi. I've just noticed that this commit added new global-scope
> > functions to header files without documentation comments, eg
> >
> > bool qdev_realize_and_unref(DeviceState *dev, BusState *bus, Error **errp);
>
> They actually have doc comments: next to their definition, just like the
> functions they replace.

> > Please could you provide some follow-up patches that document them?
> > I don't think we have any hope of getting people to follow whatever
> > the correct new way to create/configure/realize devices is if we
> > don't document it :-(   [Concrete example: I now have no idea
> > how this is supposed to work after this patchset.]
>
> Please check out my function comments, and if they leave you confused,
> let's talk about improvements.

I will have a look at them, but we should move them (wholesale
with other documentation comments for qdev) to the header files.
(That we are having this discussion at all demonstrates why -- people
don't look in the C files for API documentation of functions.)
The headers are where the API that faces the rest of QEMU should
be documented; comments in the C files are for people who care
about the internals of the implementation. "New prototype in a header
file should have a doc comment" is a standard part of my code review
I apply to any code which I see going past. We absolutely have not
been good about documenting our facing-the-rest-of-QEMU functions
in the past but this is an area where I think we should be raising the bar.

> I'm content to use comment placement / formatting I dislike to make my
> code blend in, but I'm not willing to do conversion work from a style I
> like to style I dislike.  That's a job for someone who won't feel icky
> afterwards :)

Fair enough. I'm happy to write some patches to consistently put
all the qdev doc info into the headers.

thanks
-- PMM

Re: [PULL 00/84] QOM patches for 2020-06-15
Posted by Philippe Mathieu-Daudé 5 years, 4 months ago
On 6/27/20 5:11 PM, Peter Maydell wrote:
> On Sat, 27 Jun 2020 at 12:53, Markus Armbruster <armbru@redhat.com> wrote:
>> Peter Maydell <peter.maydell@linaro.org> writes:
>>> Hi. I've just noticed that this commit added new global-scope
>>> functions to header files without documentation comments, eg
>>>
>>> bool qdev_realize_and_unref(DeviceState *dev, BusState *bus, Error **errp);
>>
>> They actually have doc comments: next to their definition, just like the
>> functions they replace.
> 
>>> Please could you provide some follow-up patches that document them?
>>> I don't think we have any hope of getting people to follow whatever
>>> the correct new way to create/configure/realize devices is if we
>>> don't document it :-(   [Concrete example: I now have no idea
>>> how this is supposed to work after this patchset.]
>>
>> Please check out my function comments, and if they leave you confused,
>> let's talk about improvements.
> 
> I will have a look at them, but we should move them (wholesale
> with other documentation comments for qdev) to the header files.
> (That we are having this discussion at all demonstrates why -- people
> don't look in the C files for API documentation of functions.)
> The headers are where the API that faces the rest of QEMU should
> be documented; comments in the C files are for people who care
> about the internals of the implementation. "New prototype in a header
> file should have a doc comment" is a standard part of my code review
> I apply to any code which I see going past. We absolutely have not
> been good about documenting our facing-the-rest-of-QEMU functions
> in the past but this is an area where I think we should be raising the bar.
> 
>> I'm content to use comment placement / formatting I dislike to make my
>> code blend in, but I'm not willing to do conversion work from a style I
>> like to style I dislike.  That's a job for someone who won't feel icky
>> afterwards :)
> 
> Fair enough. I'm happy to write some patches to consistently put
> all the qdev doc info into the headers.

As a start I can respin
https://www.mail-archive.com/qemu-devel@nongnu.org/msg593422.html if you
want.