From b66ca0220abb8f2e9afbbd9174da5de32da25347 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Sun, 31 Mar 2019 17:42:08 -0400 Subject: [PATCH] qemu: domain: Call virDomainCapsDeviceDefValidate Fill in virDomainCaps at Validate time and use it to call virDomainCapsDeviceDefValidate Reviewed-by: Reviewed-by: Daniel Henrique Barboza Reviewed-by: Michal Privoznik Signed-off-by: Cole Robinson --- src/qemu/qemu_domain.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 4bafb35a28..8c8dacb247 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -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; } -- GitLab