mbox

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

Message ID 20200615204008.3069956-1-armbru@redhat.com
State New
Headers show

Pull-request

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

Message

Markus Armbruster June 15, 2020, 8:38 p.m. UTC
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(-)

Comments

Peter Maydell June 16, 2020, 12:26 p.m. UTC | #1
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
Thomas Huth June 16, 2020, 3:26 p.m. UTC | #2
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
Philippe Mathieu-Daudé June 17, 2020, 3:30 a.m. UTC | #3
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
> 
>
Peter Maydell June 26, 2020, 6:28 p.m. UTC | #4
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
Markus Armbruster June 27, 2020, 11:53 a.m. UTC | #5
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 :)
Peter Maydell June 27, 2020, 3:11 p.m. UTC | #6
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
Philippe Mathieu-Daudé June 29, 2020, 7:25 a.m. UTC | #7
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.