qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 00/37] Clean-ups: qom-ify serial and remove QDEV_PROP_PTR


From: Marc-André Lureau
Subject: Re: [PATCH v4 00/37] Clean-ups: qom-ify serial and remove QDEV_PROP_PTR
Date: Sun, 1 Dec 2019 14:19:38 +0400

Hi

On Wed, Nov 20, 2019 at 7:25 PM Marc-André Lureau
<address@hidden> wrote:
>
> Hi,
>
> QDEV_PROP_PTR is marked in multiple places as "FIXME/TODO/remove
> me". In most cases, it can be easily replaced with QDEV_PROP_LINK when
> the pointer points to an Object.
>
> There are a few places where such substitution isn't possible. For
> those places, it seems reasonable to use a specific setter method
> instead, and keep the user_creatable = false. In other places,
> proper usage of qdev or other facilies is the solution.
>
> The serial code wasn't converted to qdev, which makes it a bit more
> archaic to deal with. Let's convert it first, so we can more easily
> embed it from other devices, and re-export some properties and drop
> QDEV_PROP_PTR usage.

Before v5, is there any other comment for the following patches:

- "qdev: remove unused qdev_prop_int64"

I spotted dead-code, never used. Peter would rather keep it. Worth it?

- "chardev: generate an internal id when none given"

As explained, this is necessary for qdev_prop_set_chr()

- "serial: register vmsd with DeviceClass"

This is standard qdev-ification, however it breaks backward migration,
but that's just how qdev_set_legacy_instance_id() works.

- "RFC: mips/cps: fix setting saar property"

Perhaps I should have used FIX instead of RFC, because this should
actually be a real fix. However I could use someone help to exercise
the code path.

- "sm501: make SerialMM a child, export chardev property"

review?

- "qdev/qom: remove some TODO limitations now that PROP_PTR is gone"

This should be straightforward.

>
> v4: (after Peter & Philippe reviews)
>  - replaced "self" variable names with abbreviations
>  - split "mips: inline serial_init()"
>  - new patches: "mips: use sysbus_mmio_get_region() instead of internal
>    fields", "leon3: use qdev gpio facilities for the PIL", "qdev: use
>    g_strcmp0() instead of open-coding it", "qdev/qom: remove some TODO
>    limitations now that PROP_PTR is gone"
>  - dropped patches: "sparc: move PIL irq handling to cpu.c" & "serial:
>    add "instance-id" property"
>  - various comments / commit message tweaks
>  - added r-b tags
>
> v3:
>  - introduce SerialMM and SerialIO sysbus devices
>  - remove serial_mm_connect introduced in v2
>  - replace "base" property introduced in v2, use "instance-id" for
>    vmstate purpose only
>  - add a few preliminary clean-ups
>
> v2:
>  - qom-ify serial
>  - embed the serial from sm501, and expose a "chardev" property
>  - add "leon3: use qemu_irq framework instead of callback as property"
>  - add "sparc: move PIL irq handling to cpu.c"
>  - add "cris: improve passing PIC interrupt vector to the CPU"
>  - misc comment/todo changes, add r-b tags
>
> Marc-André Lureau (37):
>   qdev: remove unused qdev_prop_int64
>   sysbus: remove unused sysbus_try_create*
>   sysbus: remove outdated comment
>   chardev: generate an internal id when none given
>   serial-pci-multi: factor out multi_serial_get_port_count()
>   serial: initial qom-ification
>   serial: register vmsd with DeviceClass
>   serial: add "chardev" property
>   serial: add "baudbase" property
>   serial: realize the serial device
>   serial: replace serial_exit_core() with unrealize
>   serial: start making SerialMM a sysbus device
>   serial-mm: add "regshift" property
>   serial-mm: add endianness property
>   serial-mm: use sysbus facilities
>   serial: make SerialIO a sysbus device
>   mips: inline serial_init()
>   mips: baudbase is 115200 by default
>   mips: use sysbus_add_io()
>   mips: use sysbus_mmio_get_region() instead of internal fields
>   sm501: make SerialMM a child, export chardev property
>   vmmouse: replace PROP_PTR with PROP_LINK
>   lance: replace PROP_PTR with PROP_LINK
>   etraxfs: remove PROP_PTR usage
>   dp8393x: replace PROP_PTR with PROP_LINK
>   leon3: use qemu_irq framework instead of callback as property
>   leon3: use qdev gpio facilities for the PIL
>   qdev: use g_strcmp0() instead of open-coding it
>   RFC: mips/cps: fix setting saar property
>   cris: improve passing PIC interrupt vector to the CPU
>   smbus-eeprom: remove PROP_PTR
>   omap-intc: remove PROP_PTR
>   omap-i2c: remove PROP_PTR
>   omap-gpio: remove PROP_PTR
>   qdev: remove PROP_MEMORY_REGION
>   qdev: remove QDEV_PROP_PTR
>   qdev/qom: remove some TODO limitations now that PROP_PTR is gone
>
>  chardev/char.c               |  32 +++++--
>  hw/arm/omap1.c               |   8 +-
>  hw/arm/omap2.c               |  25 +++---
>  hw/char/omap_uart.c          |   2 +-
>  hw/char/serial-isa.c         |  12 ++-
>  hw/char/serial-pci-multi.c   |  55 +++++++-----
>  hw/char/serial-pci.c         |  18 +++-
>  hw/char/serial.c             | 170 ++++++++++++++++++++++++++++-------
>  hw/core/qdev-properties.c    |  50 -----------
>  hw/core/qdev.c               |  15 +---
>  hw/core/sysbus.c             |  32 -------
>  hw/cris/axis_dev88.c         |   4 -
>  hw/display/sm501.c           |  33 +++++--
>  hw/dma/sparc32_dma.c         |   2 +-
>  hw/gpio/omap_gpio.c          |  42 ++++-----
>  hw/i2c/omap_i2c.c            |  19 ++--
>  hw/i2c/smbus_eeprom.c        |  17 ++--
>  hw/i386/pc.c                 |   7 +-
>  hw/i386/vmmouse.c            |   8 +-
>  hw/input/pckbd.c             |   8 +-
>  hw/intc/etraxfs_pic.c        |  26 +-----
>  hw/intc/grlib_irqmp.c        |  35 +-------
>  hw/intc/omap_intc.c          |  17 ++--
>  hw/m68k/q800.c               |   3 +-
>  hw/mips/boston.c             |   2 +-
>  hw/mips/cps.c                |   2 +-
>  hw/mips/mips_jazz.c          |   3 +-
>  hw/mips/mips_malta.c         |   2 +-
>  hw/mips/mips_mipssim.c       |  14 ++-
>  hw/net/dp8393x.c             |   7 +-
>  hw/net/etraxfs_eth.c         |  44 ++++++---
>  hw/net/lance.c               |   5 +-
>  hw/net/pcnet-pci.c           |   2 +-
>  hw/net/pcnet.h               |   2 +-
>  hw/sh4/r2d.c                 |   2 +-
>  hw/sparc/leon3.c             |  15 +++-
>  include/hw/arm/omap.h        |  52 +++++++++++
>  include/hw/char/serial.h     |  43 ++++++---
>  include/hw/cris/etraxfs.h    |  20 +----
>  include/hw/input/i8042.h     |   4 +-
>  include/hw/qdev-properties.h |  27 ------
>  include/hw/sysbus.h          |  13 +--
>  include/qemu/id.h            |   1 +
>  qom/qom-qmp-cmds.c           |  10 ---
>  target/cris/cpu.c            |   8 ++
>  target/cris/cpu.h            |   1 +
>  util/id.c                    |   1 +
>  47 files changed, 497 insertions(+), 423 deletions(-)
>
> --
> 2.24.0
>
>


-- 
Marc-André Lureau



reply via email to

[Prev in Thread] Current Thread [Next in Thread]