[Qemu-devel] [PATCH v2 0/6] Replace has_dynamic_sysbus with list of allowed device types

Eduardo Habkost posted 6 patches 6 years, 4 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20171125151610.20547-1-ehabkost@redhat.com
Test checkpatch passed
Test docker passed
Test ppc passed
Test s390x passed
include/hw/boards.h  |  5 ++++-
hw/arm/virt.c        |  5 ++++-
hw/core/machine.c    | 43 +++++++++++++++++++++++++++++--------------
hw/i386/pc_q35.c     |  5 ++++-
hw/ppc/e500plat.c    |  4 +++-
hw/ppc/spapr.c       |  2 +-
hw/xen/xen_backend.c |  2 +-
7 files changed, 46 insertions(+), 20 deletions(-)
[Qemu-devel] [PATCH v2 0/6] Replace has_dynamic_sysbus with list of allowed device types
Posted by Eduardo Habkost 6 years, 4 months ago
Changes v1 (RFC) -> v2:
* Patch 1 now just adds TYPE_SYS_BUS_DEVICE to the existing
  has_dynamic_sysbus=true machines, and other patches make
  the lists on each machine-type more specific.
* Change the name of the new field to
  allowed_dynamic_sysbus_devices.
* The q35 allowed list is much shorter because the list of
  user-creatable sysbus devices in QEMU is shorter.
* Keep the xen_set_dynamic_sysbus() hack, just change it
  to add 'xen-sysdev" to the allowed list.
* Simplified the arm/virt code.

Summary
-------

This series replaces the existing has_dynamic_sysbus flag (that
makes the machine accept every user-creatable sysbus device type
on the command-line) with a list of allowed devices.

This will be helpful when implementing the new query-device-slots
command, because each machine type will include only the sysbus
devices it really supports, instead of including a catch-all
TYPE_SYS_BUS_DEVICE "slot".

This will be useful to add support to new sysbus devices on
machines like pc_piix, that don't have has_dynamic_sysbus set
today.

This also makes the code safer: just compiling a new sysbus
device in the same QEMU binary won't make a machine-type
automatically start accepting the device.

Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Stefan Berger <stefanb@linux.vnet.ibm.com>
Cc: Alexander Graf <agraf@suse.de>

Eduardo Habkost (6):
  machine: Replace has_dynamic_sysbus with list of allowed devices
  hw/arm/virt: Allow only supported dynamic sysbus devices
  ppc: e500: Allow only supported dynamic sysbus devices
  spapr: Allow only supported dynamic sysbus devices
  xen: Add only xen-sysdev to dynamic sysbus device list
  q35: Allow only supported dynamic sysbus devices

 include/hw/boards.h  |  5 ++++-
 hw/arm/virt.c        |  5 ++++-
 hw/core/machine.c    | 43 +++++++++++++++++++++++++++++--------------
 hw/i386/pc_q35.c     |  5 ++++-
 hw/ppc/e500plat.c    |  4 +++-
 hw/ppc/spapr.c       |  2 +-
 hw/xen/xen_backend.c |  2 +-
 7 files changed, 46 insertions(+), 20 deletions(-)

-- 
2.13.6


Re: [Qemu-devel] [PATCH v2 0/6] Replace has_dynamic_sysbus with list of allowed device types
Posted by Marc-André Lureau 6 years, 3 months ago
Hi

On Sat, Nov 25, 2017 at 4:16 PM, Eduardo Habkost <ehabkost@redhat.com> wrote:
> Changes v1 (RFC) -> v2:
> * Patch 1 now just adds TYPE_SYS_BUS_DEVICE to the existing
>   has_dynamic_sysbus=true machines, and other patches make
>   the lists on each machine-type more specific.
> * Change the name of the new field to
>   allowed_dynamic_sysbus_devices.
> * The q35 allowed list is much shorter because the list of
>   user-creatable sysbus devices in QEMU is shorter.
> * Keep the xen_set_dynamic_sysbus() hack, just change it
>   to add 'xen-sysdev" to the allowed list.
> * Simplified the arm/virt code.
>
> Summary
> -------
>
> This series replaces the existing has_dynamic_sysbus flag (that
> makes the machine accept every user-creatable sysbus device type
> on the command-line) with a list of allowed devices.
>
> This will be helpful when implementing the new query-device-slots
> command, because each machine type will include only the sysbus
> devices it really supports, instead of including a catch-all
> TYPE_SYS_BUS_DEVICE "slot".
>
> This will be useful to add support to new sysbus devices on
> machines like pc_piix, that don't have has_dynamic_sysbus set
> today.
>
> This also makes the code safer: just compiling a new sysbus
> device in the same QEMU binary won't make a machine-type
> automatically start accepting the device.

Anything left for the series? (besides review of patch 5?) I need this
to be solved for the pending TPM CRB device to work with piix. Thanks

>
> Cc: Marc-André Lureau <marcandre.lureau@redhat.com>
> Cc: Marcel Apfelbaum <marcel@redhat.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Stefan Berger <stefanb@linux.vnet.ibm.com>
> Cc: Alexander Graf <agraf@suse.de>
>
> Eduardo Habkost (6):
>   machine: Replace has_dynamic_sysbus with list of allowed devices
>   hw/arm/virt: Allow only supported dynamic sysbus devices
>   ppc: e500: Allow only supported dynamic sysbus devices
>   spapr: Allow only supported dynamic sysbus devices
>   xen: Add only xen-sysdev to dynamic sysbus device list
>   q35: Allow only supported dynamic sysbus devices
>
>  include/hw/boards.h  |  5 ++++-
>  hw/arm/virt.c        |  5 ++++-
>  hw/core/machine.c    | 43 +++++++++++++++++++++++++++++--------------
>  hw/i386/pc_q35.c     |  5 ++++-
>  hw/ppc/e500plat.c    |  4 +++-
>  hw/ppc/spapr.c       |  2 +-
>  hw/xen/xen_backend.c |  2 +-
>  7 files changed, 46 insertions(+), 20 deletions(-)
>
> --
> 2.13.6
>
>



-- 
Marc-André Lureau

Re: [Qemu-devel] [PATCH v2 0/6] Replace has_dynamic_sysbus with list of allowed device types
Posted by Eduardo Habkost 6 years, 3 months ago
Queued on machine-next.

-- 
Eduardo