On Tue, Aug 19, 2025 at 18:22:15 +0200, Andrea Bolognani via Devel wrote:
> Only the -eb variants of the realview board support PCI
> devices, so those are the only ones that should automatically
> get a USB controller (addDefaultUSB).

You don't mention what the consequence of the originally bad choice is.

Did the VM fail to start if the OHCI controller was used on the
board/machine type without PCI?

While the chance for people to hit regressions are low as not many
people use these we still ought to keep our compat promise.

> Additionally, they should get a PCI controller added
> automatically (addPCIRoot) too, same as versatilepb.
> 
> Finally, qemuDomainSupportsPCI() should correctly report the
> fact that these machine types support PCI.
> 
> As a consequence of these fixes, the USB controllers now
> correctly get assigned PCI addresses across the board.
> 
> Signed-off-by: Andrea Bolognani <[email protected]>
> ---
>  src/qemu/qemu_domain.c                                 |  3 ++-
>  src/qemu/qemu_postparse.c                              | 10 ++++------
>  ...h64-realview-minimal.aarch64-latest.abi-update.args |  2 +-
>  ...ch64-realview-minimal.aarch64-latest.abi-update.xml |  5 ++++-
>  .../aarch64-realview-minimal.aarch64-latest.args       |  2 +-
>  .../aarch64-realview-minimal.aarch64-latest.xml        |  5 ++++-
>  ...b-controller-automatic-realview.aarch64-latest.args |  2 +-
>  ...sb-controller-automatic-realview.aarch64-latest.xml |  5 ++++-
>  ...r-automatic-unavailable-realview.aarch64-latest.xml |  5 ++++-
>  ...oller-default-fallback-realview.aarch64-latest.args |  2 +-
>  ...roller-default-fallback-realview.aarch64-latest.xml |  5 ++++-
>  ...usb-controller-default-realview.aarch64-latest.args |  2 +-
>  .../usb-controller-default-realview.aarch64-latest.xml |  5 ++++-
>  ...ler-default-unavailable-realview.aarch64-latest.xml |  5 ++++-
>  14 files changed, 39 insertions(+), 19 deletions(-)
> 
> diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> index e45757ccd5..81a8ca906d 100644
> --- a/src/qemu/qemu_domain.c
> +++ b/src/qemu/qemu_domain.c
> @@ -7688,7 +7688,8 @@ qemuDomainSupportsPCI(const virDomainDef *def)
>       * machine types support PCI */
>      if (ARCH_IS_ARM(def->os.arch)) {
>          if (qemuDomainIsARMVirt(def) ||
> -            STREQ(def->os.machine, "versatilepb")) {
> +            STREQ(def->os.machine, "versatilepb") ||
> +            STRPREFIX(def->os.machine, "realview-eb")) {
>              return true;
>          }
>          return false;
> diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c
> index 5f59b79d56..3c481ead5e 100644
> --- a/src/qemu/qemu_postparse.c
> +++ b/src/qemu/qemu_postparse.c
> @@ -1291,13 +1291,11 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver,
>      case VIR_ARCH_ARMV7L:
>      case VIR_ARCH_ARMV7B:
>      case VIR_ARCH_AARCH64:
> -        if (STREQ(def->os.machine, "versatilepb"))
> -            addPCIRoot = true;
> -
> -        /* Add default USB for the two machine types which historically
> -         * supported -usb */
> +        /* Add default PCI and USB for the two machine types which
> +         * historically supported -usb */
>          if (STREQ(def->os.machine, "versatilepb") ||
> -            STRPREFIX(def->os.machine, "realview")) {
> +            STRPREFIX(def->os.machine, "realview-eb")) {
> +            addPCIRoot = true;
>              addDefaultUSB = true;
>              if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCI_OHCI))
>                  usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI;

So if 'realview' machine with default USB worked before I don't think
you should remove it here. If it didn't work please update the commit
message and use:

Reviewed-by: Peter Krempa <[email protected]>

Reply via email to