From c7365dd157ec25ff8ac83908536379a0832a3c14 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Thu, 25 Sep 2025 15:29:44 +0200 Subject: [PATCH] qemu: Clean up qemuDomainDefaultUSBControllerModelAutoAdded() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik Reviewed-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_domain.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 74c393c2df..370831fa48 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4421,22 +4421,21 @@ virDomainControllerModelUSB qemuDomainDefaultUSBControllerModelAutoAdded(const virDomainDef *def, virQEMUCaps *qemuCaps) { - virDomainControllerModelUSB model = VIR_DOMAIN_CONTROLLER_MODEL_USB_DEFAULT; - if (ARCH_IS_X86(def->os.arch)) { if (qemuDomainIsQ35(def)) { - /* Prefer adding a USB3 controller if supported, fall back - * to USB2 if there is no USB3 available, and if that's - * unavailable don't add anything. - */ + /* Prefer qemu-xhci or nec-xhci (USB3) */ if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_QEMU_XHCI)) - model = VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI; - else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NEC_USB_XHCI)) - model = VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI; - else if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_USB_EHCI1)) - model = VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1; - else - model = VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE; + return VIR_DOMAIN_CONTROLLER_MODEL_USB_QEMU_XHCI; + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_NEC_USB_XHCI)) + return VIR_DOMAIN_CONTROLLER_MODEL_USB_NEC_XHCI; + + /* Fall back to ich9-ehci1 (USB2) */ + if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_ICH9_USB_EHCI1)) + return VIR_DOMAIN_CONTROLLER_MODEL_USB_ICH9_EHCI1; + + /* If neither USB3 nor USB2 are available, do not add + * the controller at all */ + return VIR_DOMAIN_CONTROLLER_MODEL_USB_NONE; } } @@ -4444,10 +4443,10 @@ qemuDomainDefaultUSBControllerModelAutoAdded(const virDomainDef *def, if (STREQ(def->os.machine, "versatilepb") || STRPREFIX(def->os.machine, "realview-eb")) if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_PCI_OHCI)) - model = VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI; + return VIR_DOMAIN_CONTROLLER_MODEL_USB_PCI_OHCI; } - return model; + return VIR_DOMAIN_CONTROLLER_MODEL_USB_DEFAULT; } -- 2.47.3