From a416ccfb98d781c467bcc3aedf799be5ec9f65ab Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Wed, 6 Aug 2025 16:34:58 +0200 Subject: [PATCH] qemu: Check for pci-ohci availability MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We assign the USB controller model without first checking whether the corresponding QEMU device is available, and that results in a late error instead of an early one. Be consistent with how we do things in all other cases and check the presence of the capability before attempting to set the model. Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik Reviewed-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_postparse.c | 3 ++- ...ontroller-automatic-unavailable-realview.aarch64-latest.err | 2 +- ...ontroller-automatic-unavailable-realview.aarch64-latest.xml | 2 +- ...troller-automatic-unavailable-versatilepb.armv7l-latest.err | 2 +- ...troller-automatic-unavailable-versatilepb.armv7l-latest.xml | 2 +- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_postparse.c b/src/qemu/qemu_postparse.c index 9c2427970d..5f59b79d56 100644 --- a/src/qemu/qemu_postparse.c +++ b/src/qemu/qemu_postparse.c @@ -1299,7 +1299,8 @@ qemuDomainDefAddDefaultDevices(virQEMUDriver *driver, if (STREQ(def->os.machine, "versatilepb") || STRPREFIX(def->os.machine, "realview")) { addDefaultUSB = true; - usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI; + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCI_OHCI)) + usbModel = VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI; } if (qemuDomainIsARMVirt(def)) diff --git a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.err b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.err index 918b72dbe9..cac4e8e760 100644 --- a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.err +++ b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.err @@ -1 +1 @@ -unsupported configuration: USB controller model 'pci-ohci' not supported in this QEMU binary +internal error: Unable to determine model for USB controller idx=0 diff --git a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.xml b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.xml index 372d5bda6a..dfa8ef8dbe 100644 --- a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.xml +++ b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-realview.aarch64-latest.xml @@ -15,7 +15,7 @@ destroy /usr/bin/qemu-system-aarch64 - + diff --git a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.err b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.err index 918b72dbe9..cac4e8e760 100644 --- a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.err +++ b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.err @@ -1 +1 @@ -unsupported configuration: USB controller model 'pci-ohci' not supported in this QEMU binary +internal error: Unable to determine model for USB controller idx=0 diff --git a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.xml b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.xml index 482029e3b0..93bf8dcd0a 100644 --- a/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.xml +++ b/tests/qemuxmlconfdata/usb-controller-automatic-unavailable-versatilepb.armv7l-latest.xml @@ -17,7 +17,7 @@ destroy /usr/bin/qemu-system-armv7l - +
-- 2.47.3