]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_command.c: move QEMU_CAPS_DEVICE_USB_KBD check to qemu_validate.c
authorDaniel Henrique Barboza <danielhb413@gmail.com>
Fri, 9 Oct 2020 16:59:14 +0000 (13:59 -0300)
committerDaniel Henrique Barboza <danielhb413@gmail.com>
Thu, 15 Oct 2020 13:50:34 +0000 (10:50 -0300)
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_command.c
src/qemu/qemu_validate.c
tests/qemuhotplugtest.c

index a4f1cbce110596399e7608398d8f698bf0b51e05..f9387a65e03195a8072aab4164d31103e2e11a93 100644 (file)
@@ -3823,12 +3823,6 @@ qemuBuildUSBInputDevStr(const virDomainDef *def,
         virBufferAsprintf(&buf, "usb-tablet,id=%s", dev->info.alias);
         break;
     case VIR_DOMAIN_INPUT_TYPE_KBD:
-        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_USB_KBD)) {
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                           _("usb keyboard is not supported by this "
-                             "QEMU binary"));
-            return NULL;
-        }
         virBufferAsprintf(&buf, "usb-kbd,id=%s", dev->info.alias);
         break;
     }
index 01fc318741efc883aeee17546394181408a4f85e..d6538806ec54c0d8332a0b65e76ca45ec6973611 100644 (file)
@@ -3990,6 +3990,15 @@ qemuValidateDomainDeviceDefInput(const virDomainInputDef *input,
         return -1;
     }
 
+    if (input->bus == VIR_DOMAIN_INPUT_BUS_USB &&
+        input->type == VIR_DOMAIN_INPUT_TYPE_KBD &&
+        !virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_USB_KBD)) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("usb keyboard is not supported by this "
+                         "QEMU binary"));
+        return -1;
+    }
+
     if (input->bus != VIR_DOMAIN_INPUT_BUS_VIRTIO)
         return 0;
 
index 2d12cacf28e2ed04e47344f57b7a94dca9487ffb..0948c8792d4c229d21d588c5992ff96f915ac23f 100644 (file)
@@ -89,6 +89,7 @@ qemuHotplugCreateObjects(virDomainXMLOptionPtr xmlopt,
     virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SPICE_FILE_XFER_DISABLE);
     virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER);
     virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_SCSI_BLOCK);
+    virQEMUCapsSet(priv->qemuCaps, QEMU_CAPS_DEVICE_USB_KBD);
 
     if (qemuTestCapsCacheInsert(driver.qemuCapsCache, priv->qemuCaps) < 0)
         return -1;