Re: [RFC PATCH 002/134] qdev: Rename qdev_new()/qdev_try_new() to *_orphan()

Philippe Mathieu-Daudé <[email protected]>
Newsgroups org.nongnu.qemu-riscv,org.nongnu.qemu-arm,org.nongnu.qemu-devel
Message-ID <[email protected]>
On 12/7/26 00:34, Alexander Graf wrote:
> qdev_new() creates a device on the heap without a QOM parent.  If the
> caller does not add one before realize, device_set_realized() dumps
> the device into /machine/unattached with an unstable canonical path.
> 
> We want the short spelling qdev_new() to be the one that gets
> parenting right by construction.  As a first step, rename the current
> functions to qdev_new_orphan() and qdev_try_new_orphan() tree-wide so
> that a subsequent commit can reintroduce qdev_new() with a mandatory
> (parent, id, type) signature.
> 
> Purely mechanical, generated by
> 
>    spatch --sp-file scripts/coccinelle/qom-parent/qdev-new-orphan.cocci \
>           --in-place --include-headers --dir .
> 
> or equivalently
> 
>    git ls-files '*.[ch]' '*.[ch].inc' '*.rst' '*.py' | \
>        grep -v '^subprojects/' | \
>        xargs sed -i 's/\bqdev_try_new\b/qdev_try_new_orphan/g;
>                      s/\bqdev_new\b/qdev_new_orphan/g'
> 
> No functional change.
> 
> Assisted-by: Kiro
> Signed-off-by: Alexander Graf <[email protected]>
> ---
>   hw/alpha/typhoon.c                            |  2 +-
>   hw/arm/aspeed.c                               |  2 +-
>   hw/arm/aspeed_soc_common.c                    |  4 +-
>   hw/arm/bananapi_m2u.c                         |  2 +-
>   hw/arm/cubieboard.c                           |  2 +-
>   hw/arm/exynos4210.c                           | 12 ++--
>   hw/arm/imx25_pdk.c                            |  2 +-
>   hw/arm/imx8mm-evk.c                           |  2 +-
>   hw/arm/imx8mp-evk.c                           |  2 +-
>   hw/arm/integratorcp.c                         |  8 +--
>   hw/arm/max78000fthr.c                         |  2 +-
>   hw/arm/mcimx6ul-evk.c                         |  2 +-
>   hw/arm/mcimx7d-sabre.c                        |  2 +-
>   hw/arm/mps2-tz.c                              |  4 +-
>   hw/arm/mps2.c                                 |  4 +-
>   hw/arm/msf2-som.c                             |  4 +-
>   hw/arm/musicpal.c                             |  6 +-
>   hw/arm/netduino2.c                            |  2 +-
>   hw/arm/netduinoplus2.c                        |  2 +-
>   hw/arm/npcm7xx_boards.c                       |  4 +-
>   hw/arm/npcm8xx_boards.c                       |  2 +-
>   hw/arm/olimex-stm32-h405.c                    |  2 +-
>   hw/arm/omap1.c                                | 12 ++--
>   hw/arm/orangepi.c                             |  2 +-
>   hw/arm/raspi.c                                |  2 +-
>   hw/arm/realview.c                             | 18 ++---
>   hw/arm/sabrelite.c                            |  2 +-
>   hw/arm/sbsa-ref.c                             | 20 +++---
>   hw/arm/stellaris.c                            | 20 +++---
>   hw/arm/stm32vldiscovery.c                     |  2 +-
>   hw/arm/strongarm.c                            |  4 +-
>   hw/arm/versatilepb.c                          | 14 ++--
>   hw/arm/vexpress.c                             | 14 ++--
>   hw/arm/virt.c                                 | 24 +++----
>   hw/arm/xilinx_zynq.c                          | 26 +++----
>   hw/arm/xlnx-versal-virt.c                     |  2 +-
>   hw/arm/xlnx-versal.c                          | 70 +++++++++----------
>   hw/arm/xlnx-zcu102.c                          |  6 +-
>   hw/arm/xlnx-zynqmp.c                          |  2 +-
>   hw/audio/intel-hda.c                          |  2 +-
>   hw/audio/model.c                              |  2 +-
>   hw/avr/atmega.c                               |  2 +-
>   hw/block/fdc-sysbus.c                         |  4 +-
>   hw/block/fdc.c                                |  2 +-
>   hw/block/pflash_cfi01.c                       |  2 +-
>   hw/block/pflash_cfi02.c                       |  2 +-
>   hw/block/xen-block.c                          |  2 +-
>   hw/char/exynos4210_uart.c                     |  2 +-
>   hw/char/mcf_uart.c                            |  2 +-
>   hw/char/mchp_pfsoc_mmuart.c                   |  2 +-
>   hw/char/pl011.c                               |  2 +-
>   hw/char/serial-mm.c                           |  2 +-
>   hw/char/sifive_uart.c                         |  2 +-
>   hw/char/spapr_vty.c                           |  2 +-
>   hw/char/xen_console.c                         |  2 +-
>   hw/core/qdev.c                                |  4 +-
>   hw/core/sysbus.c                              |  2 +-
>   hw/cxl/cxl-host.c                             |  2 +-
>   hw/display/sm501.c                            |  2 +-
>   hw/display/xlnx_dp.c                          |  4 +-
>   hw/dma/rc4030.c                               |  2 +-
>   hw/hexagon/hexagon_dsp.c                      |  4 +-
>   hw/hexagon/virt.c                             |  6 +-
>   hw/hppa/machine.c                             | 12 ++--
>   hw/i2c/core.c                                 |  2 +-
>   hw/i2c/smbus_eeprom.c                         |  2 +-
>   hw/i386/microvm.c                             |  6 +-
>   hw/i386/nitro_enclave.c                       |  4 +-
>   hw/i386/pc.c                                  |  2 +-
>   hw/i386/pc_piix.c                             |  2 +-
>   hw/i386/pc_q35.c                              |  2 +-
>   hw/i386/pc_sysfw.c                            |  2 +-
>   hw/i386/sgx.c                                 |  2 +-
>   hw/i386/x86-common.c                          |  6 +-
>   hw/i3c/core.c                                 |  2 +-
>   hw/ide/ide-bus.c                              |  2 +-
>   hw/intc/exynos4210_gic.c                      |  2 +-
>   hw/intc/riscv_aclint.c                        |  4 +-
>   hw/intc/riscv_aplic.c                         |  2 +-
>   hw/intc/riscv_imsic.c                         |  2 +-
>   hw/intc/s390_flic.c                           |  4 +-
>   hw/intc/sifive_plic.c                         |  2 +-
>   hw/isa/isa-bus.c                              |  6 +-
>   hw/loongarch/virt.c                           | 18 ++---
>   hw/m68k/an5206.c                              |  2 +-
>   hw/m68k/mcf_intc.c                            |  2 +-
>   hw/m68k/next-cube.c                           |  2 +-
>   hw/m68k/q800.c                                |  4 +-
>   hw/m68k/virt.c                                | 10 +--
>   hw/mem/sparse-mem.c                           |  2 +-
>   hw/microblaze/petalogix_ml605_mmu.c           | 12 ++--
>   hw/microblaze/petalogix_s3adsp1800_mmu.c      |  8 +--
>   hw/mips/boston.c                              |  4 +-
>   hw/mips/jazz.c                                | 12 ++--
>   hw/mips/loongson3_virt.c                      |  6 +-
>   hw/mips/malta.c                               |  4 +-
>   hw/misc/empty_slot.c                          |  2 +-
>   hw/misc/led.c                                 |  2 +-
>   hw/misc/sifive_e_prci.c                       |  2 +-
>   hw/misc/sifive_test.c                         |  2 +-
>   hw/net/lan9118.c                              |  2 +-
>   hw/net/smc91c111.c                            |  2 +-
>   hw/net/spapr_llan.c                           |  2 +-
>   hw/net/xen_nic.c                              |  2 +-
>   hw/nitro/machine.c                            |  4 +-
>   hw/nitro/nitro-vsock-bus.c                    |  2 +-
>   hw/nvme/ctrl.c                                |  2 +-
>   hw/nvram/fw_cfg.c                             |  4 +-
>   hw/or1k/or1k-sim.c                            |  6 +-
>   hw/or1k/virt.c                                |  8 +--
>   hw/pci-bridge/pci_expander_bridge.c           |  4 +-
>   hw/pci-host/astro.c                           |  2 +-
>   hw/pci-host/bonito.c                          |  2 +-
>   hw/pci-host/pnv_phb4_pec.c                    |  2 +-
>   hw/pci/pci.c                                  |  2 +-
>   hw/ppc/amigaone.c                             |  2 +-
>   hw/ppc/e500.c                                 | 22 +++---
>   hw/ppc/mac_newworld.c                         | 18 ++---
>   hw/ppc/mac_oldworld.c                         |  8 +--
>   hw/ppc/pnv.c                                  |  4 +-
>   hw/ppc/pnv_bmc.c                              |  2 +-
>   hw/ppc/ppc440_bamboo.c                        |  4 +-
>   hw/ppc/prep.c                                 |  4 +-
>   hw/ppc/sam460ex.c                             | 16 ++---
>   hw/ppc/spapr.c                                |  4 +-
>   hw/ppc/spapr_irq.c                            |  2 +-
>   hw/ppc/spapr_vio.c                            |  2 +-
>   hw/ppc/virtex_ml507.c                         |  6 +-
>   hw/remote/machine.c                           |  2 +-
>   hw/riscv/boston-aia.c                         |  4 +-
>   hw/riscv/microblaze-v-generic.c               | 14 ++--
>   hw/riscv/microchip_pfsoc.c                    |  2 +-
>   hw/riscv/sifive_u.c                           |  4 +-
>   hw/riscv/virt.c                               |  8 +--
>   hw/rtc/sun4v-rtc.c                            |  2 +-
>   hw/s390x/ap-bridge.c                          |  2 +-
>   hw/s390x/css-bridge.c                         |  2 +-
>   hw/s390x/s390-pci-bus.c                       |  2 +-
>   hw/s390x/s390-virtio-ccw.c                    |  6 +-
>   hw/scsi/lasi_ncr710.c                         |  2 +-
>   hw/scsi/ncr53c710.c                           |  4 +-
>   hw/scsi/scsi-bus.c                            |  2 +-
>   hw/scsi/spapr_vscsi.c                         |  2 +-
>   hw/sh4/r2d.c                                  |  6 +-
>   hw/sh4/sh7750.c                               |  4 +-
>   hw/sparc/leon3.c                              | 10 +--
>   hw/sparc/sun4m.c                              | 38 +++++-----
>   hw/sparc64/sun4u.c                            | 14 ++--
>   hw/ssi/ssi.c                                  |  2 +-
>   hw/tricore/tricore_testboard.c                |  2 +-
>   hw/ufs/lu.c                                   |  2 +-
>   hw/usb/bus.c                                  |  4 +-
>   hw/usb/dev-serial.c                           |  2 +-
>   hw/vmapple/vmapple.c                          | 20 +++---
>   hw/xen/xen-bus.c                              |  2 +-
>   hw/xen/xen-legacy-backend.c                   |  2 +-
>   hw/xen/xen-pvh-common.c                       |  2 +-
>   hw/xtensa/virt.c                              |  2 +-
>   hw/xtensa/xtfpga.c                            |  2 +-
>   include/hw/core/qdev.h                        | 14 ++--
>   include/hw/i2c/i2c.h                          |  2 +-
>   include/hw/misc/unimp.h                       |  2 +-
>   include/hw/ssi/ssi.h                          |  2 +-
>   include/hw/usb/usb.h                          |  2 +-
>   migration/migration.c                         |  2 +-
>   net/net.c                                     |  4 +-
>   .../qom-parent/qdev-new-orphan.cocci          | 18 +++++
>   system/qdev-monitor.c                         |  2 +-
>   target/mips/cpu.c                             |  2 +-
>   target/xtensa/cpu.c                           |  2 +-
>   170 files changed, 459 insertions(+), 441 deletions(-)
>   create mode 100644 scripts/coccinelle/qom-parent/qdev-new-orphan.cocci

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.