]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: domain: Call virDomainCapsDeviceDefValidate
authorCole Robinson <crobinso@redhat.com>
Sun, 31 Mar 2019 21:42:08 +0000 (17:42 -0400)
committerCole Robinson <crobinso@redhat.com>
Tue, 6 Aug 2019 23:45:50 +0000 (19:45 -0400)
Fill in virDomainCaps at Validate time and use it to call
virDomainCapsDeviceDefValidate

Reviewed-by: Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
Signed-off-by: Cole Robinson <crobinso@redhat.com>
src/qemu/qemu_domain.c

index 4bafb35a280410fcc18c5f7203e3be0dc6f1c4de..8c8dacb2470855c53e20568eca7a4d0f90419286 100644 (file)
@@ -41,6 +41,7 @@
 #include "viruuid.h"
 #include "virfile.h"
 #include "domain_addr.h"
+#include "domain_capabilities.h"
 #include "domain_event.h"
 #include "virtime.h"
 #include "virnetdevopenvswitch.h"
@@ -6737,14 +6738,24 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
     int ret = 0;
     virQEMUDriverPtr driver = opaque;
     virQEMUCapsPtr qemuCaps = NULL;
+    virDomainCapsPtr domCaps = NULL;
 
     if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
                                             def->emulator)))
         return -1;
 
+    if (!(domCaps = virQEMUDriverGetDomainCapabilities(driver, qemuCaps,
+                                                       def->os.machine,
+                                                       def->os.arch,
+                                                       def->virtType)))
+        goto cleanup;
+
     if ((ret = qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0)
         goto cleanup;
 
+    if (virDomainCapsDeviceDefValidate(domCaps, dev, def) < 0)
+        goto cleanup;
+
     switch ((virDomainDeviceType)dev->type) {
     case VIR_DOMAIN_DEVICE_NET:
         ret = qemuDomainDeviceDefValidateNetwork(dev->data.net);
@@ -6831,6 +6842,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
 
  cleanup:
     virObjectUnref(qemuCaps);
+    virObjectUnref(domCaps);
     return ret;
 }