[libvirt] [PATCH 05/11] qemu: separate counting of USB controllers

Ján Tomko jtomko at redhat.com
Wed Jan 16 07:56:10 UTC 2019


qemuBuildLegacyUSBControllerCommandLine is the only place where
we need to count the USB controllers.

Count them again instead of keeping track in a variable passed to
qemuBuildControllerDevStr.

This removes the need for another variable in the loop in
qemuBuildControllerDevCommandLine.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 src/qemu/qemu_command.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 014bd031a8..22f041a956 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -3035,11 +3035,11 @@ qemuBuildDomainForbidLegacyUSBController(const virDomainDef *def)
 
 static int
 qemuBuildLegacyUSBControllerCommandLine(virCommandPtr cmd,
-                                        const virDomainDef *def,
-                                        int usbcontroller)
+                                        const virDomainDef *def)
 {
     size_t i;
     size_t nlegacy = 0;
+    size_t nusb = 0;
 
     for (i = 0; i < def->ncontrollers; i++) {
         virDomainControllerDefPtr cont = def->controllers[i];
@@ -3053,6 +3053,8 @@ qemuBuildLegacyUSBControllerCommandLine(virCommandPtr cmd,
 
         if (cont->model == VIR_DOMAIN_CONTROLLER_MODEL_USB_DEFAULT)
             nlegacy++;
+        else
+            nusb++;
     }
 
     if (nlegacy > 1) {
@@ -3062,7 +3064,7 @@ qemuBuildLegacyUSBControllerCommandLine(virCommandPtr cmd,
         return -1;
     }
 
-    if (usbcontroller == 0 &&
+    if (nusb == 0 &&
         !qemuBuildDomainForbidLegacyUSBController(def) &&
         !ARCH_IS_S390(def->os.arch)) {
         /* We haven't added any USB controller yet, but we haven't been asked
@@ -3199,7 +3201,7 @@ qemuBuildControllerDevCommandLine(virCommandPtr cmd,
         }
     }
 
-    if (qemuBuildLegacyUSBControllerCommandLine(cmd, def, usbcontroller) < 0)
+    if (qemuBuildLegacyUSBControllerCommandLine(cmd, def) < 0)
         goto cleanup;
 
     ret = 0;
-- 
2.20.1




More information about the libvir-list mailing list