[PATCH v2 37/38] qemu: Remove use of piix3-uhci for non-x86

Andrea Bolognani via Devel posted 38 patches 1 week, 2 days ago
[PATCH v2 37/38] qemu: Remove use of piix3-uhci for non-x86
Posted by Andrea Bolognani via Devel 1 week, 2 days ago
There are still a couple of scenarios in which we end up
using the Intel-specific piix3-uhci (USB1) controller for
non-x86 guests.

Remove these uses, leaving the generic pci-ohci (USB1)
controller as either the fallback or default for situations
where no better choice can be made.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
---
 src/qemu/qemu_domain.c                                 | 10 +++-------
 tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args          |  2 +-
 tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml           |  2 +-
 .../ppc-mac99-minimal.ppc-latest.abi-update.args       |  2 +-
 .../ppc-mac99-minimal.ppc-latest.abi-update.xml        |  2 +-
 .../qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args  |  2 +-
 tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml |  2 +-
 tests/qemuxmlconfdata/ppce500-serial.ppc-latest.args   |  2 +-
 tests/qemuxmlconfdata/ppce500-serial.ppc-latest.xml    |  2 +-
 .../usb-controller-default-mac99ppc.ppc-latest.args    |  2 +-
 .../usb-controller-default-mac99ppc.ppc-latest.xml     |  2 +-
 11 files changed, 13 insertions(+), 17 deletions(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index b1a92279a7..b39fabfbb4 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -4348,9 +4348,7 @@ qemuDomainDefaultUSBControllerModel(const virDomainDef *def,
         if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NEC_USB_XHCI))
             return VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI;
 
-        /* Allow piix3-uhci and pci-ohci (USB1) as fallback */
-        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX3_USB_UHCI))
-            return VIR_DOMAIN_CONTROLLER_MODEL_USB_PIIX3_UHCI;
+        /* Allow pci-ohci (USB1) as fallback */
         if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCI_OHCI))
             return VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI;
 
@@ -4387,10 +4385,8 @@ qemuDomainDefaultUSBControllerModel(const virDomainDef *def,
     }
 
     /* Most common architectures and machine types have been already
-     * handled above; for the remaining cases, use piix3-uhci or
-     * pci-ohci (USB1) as the most reasonable fallback */
-    if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PIIX3_USB_UHCI))
-        return VIR_DOMAIN_CONTROLLER_MODEL_USB_PIIX3_UHCI;
+     * handled above; for the remaining cases, use pci-ohci (USB1)
+     * as the most reasonable fallback */
     if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCI_OHCI))
         return VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI;
 
diff --git a/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args b/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args
index 8032ad7f0e..bdc86620c8 100644
--- a/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args
+++ b/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args
@@ -29,7 +29,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -initrd /media/ram/ramdisk \
 -append 'root=/dev/ram rw console=ttyS0,115200' \
 -dtb /media/ram/test.dtb \
--device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1"}' \
+-device '{"driver":"pci-ohci","id":"usb","bus":"pci.0","addr":"0x1"}' \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -audiodev '{"id":"audio1","driver":"none"}' \
diff --git a/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml b/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml
index 400f749eb0..31fcc3d053 100644
--- a/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml
+++ b/tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml
@@ -18,7 +18,7 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-ppc</emulator>
-    <controller type='usb' index='0' model='piix3-uhci'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'/>
diff --git a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.args b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.args
index 8600eec328..9c7c884c83 100644
--- a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.args
+++ b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.args
@@ -25,7 +25,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -rtc base=utc \
 -no-shutdown \
 -boot strict=on \
--device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1"}' \
+-device '{"driver":"pci-ohci","id":"usb","bus":"pci.0","addr":"0x1"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.xml b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.xml
index 215c196fbf..633aa684da 100644
--- a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.xml
+++ b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.abi-update.xml
@@ -14,7 +14,7 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-ppc</emulator>
-    <controller type='usb' index='0' model='piix3-uhci'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'/>
diff --git a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args
index 8600eec328..9c7c884c83 100644
--- a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args
+++ b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args
@@ -25,7 +25,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-guest/.config \
 -rtc base=utc \
 -no-shutdown \
 -boot strict=on \
--device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1"}' \
+-device '{"driver":"pci-ohci","id":"usb","bus":"pci.0","addr":"0x1"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -device '{"driver":"virtio-balloon-pci","id":"balloon0","bus":"pci.0","addr":"0x2"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
diff --git a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml
index 215c196fbf..633aa684da 100644
--- a/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml
+++ b/tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml
@@ -14,7 +14,7 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-ppc</emulator>
-    <controller type='usb' index='0' model='piix3-uhci'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'/>
diff --git a/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.args b/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.args
index 84abffdc26..21aa64b323 100644
--- a/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.args
+++ b/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.args
@@ -28,7 +28,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -kernel /media/ram/uImage \
 -initrd /media/ram/ramdisk \
 -append 'root=/dev/ram rw console=ttyS0,115200' \
--device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1"}' \
+-device '{"driver":"pci-ohci","id":"usb","bus":"pci.0","addr":"0x1"}' \
 -chardev pty,id=charserial0 \
 -serial chardev:charserial0 \
 -audiodev '{"id":"audio1","driver":"none"}' \
diff --git a/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.xml b/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.xml
index c6c41d7726..05076022a3 100644
--- a/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.xml
+++ b/tests/qemuxmlconfdata/ppce500-serial.ppc-latest.xml
@@ -17,7 +17,7 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-ppc</emulator>
-    <controller type='usb' index='0' model='piix3-uhci'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'/>
diff --git a/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.args b/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.args
index dcb2b49a53..da5437bc24 100644
--- a/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.args
+++ b/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.args
@@ -25,7 +25,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
 -rtc base=utc \
 -no-shutdown \
 -boot strict=on \
--device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1"}' \
+-device '{"driver":"pci-ohci","id":"usb","bus":"pci.0","addr":"0x1"}' \
 -audiodev '{"id":"audio1","driver":"none"}' \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.xml b/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.xml
index 02cd54d7f7..2fbca012c9 100644
--- a/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.xml
+++ b/tests/qemuxmlconfdata/usb-controller-default-mac99ppc.ppc-latest.xml
@@ -14,7 +14,7 @@
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-ppc</emulator>
-    <controller type='usb' index='0' model='piix3-uhci'>
+    <controller type='usb' index='0' model='pci-ohci'>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0'/>
     </controller>
     <controller type='pci' index='0' model='pci-root'/>
-- 
2.51.0
Re: [PATCH v2 37/38] qemu: Remove use of piix3-uhci for non-x86
Posted by Peter Krempa via Devel 1 day, 12 hours ago
On Thu, Sep 25, 2025 at 20:07:23 +0200, Andrea Bolognani via Devel wrote:
> There are still a couple of scenarios in which we end up
> using the Intel-specific piix3-uhci (USB1) controller for
> non-x86 guests.
> 
> Remove these uses, leaving the generic pci-ohci (USB1)
> controller as either the fallback or default for situations
> where no better choice can be made.
> 
> Signed-off-by: Andrea Bolognani <abologna@redhat.com>
> ---
>  src/qemu/qemu_domain.c                                 | 10 +++-------
>  tests/qemuxmlconfdata/ppc-dtb.ppc-latest.args          |  2 +-
>  tests/qemuxmlconfdata/ppc-dtb.ppc-latest.xml           |  2 +-
>  .../ppc-mac99-minimal.ppc-latest.abi-update.args       |  2 +-
>  .../ppc-mac99-minimal.ppc-latest.abi-update.xml        |  2 +-
>  .../qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.args  |  2 +-
>  tests/qemuxmlconfdata/ppc-mac99-minimal.ppc-latest.xml |  2 +-
>  tests/qemuxmlconfdata/ppce500-serial.ppc-latest.args   |  2 +-
>  tests/qemuxmlconfdata/ppce500-serial.ppc-latest.xml    |  2 +-
>  .../usb-controller-default-mac99ppc.ppc-latest.args    |  2 +-
>  .../usb-controller-default-mac99ppc.ppc-latest.xml     |  2 +-
>  11 files changed, 13 insertions(+), 17 deletions(-)

Reviewed-by: Peter Krempa <pkrempa@redhat.com>