提交 b66ca022 编写于 作者: C Cole Robinson

qemu: domain: Call virDomainCapsDeviceDefValidate

Fill in virDomainCaps at Validate time and use it to call
virDomainCapsDeviceDefValidate
Reviewed-by: NReviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
Signed-off-by: NCole Robinson <crobinso@redhat.com>
上级 d3c7536c
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "viruuid.h" #include "viruuid.h"
#include "virfile.h" #include "virfile.h"
#include "domain_addr.h" #include "domain_addr.h"
#include "domain_capabilities.h"
#include "domain_event.h" #include "domain_event.h"
#include "virtime.h" #include "virtime.h"
#include "virnetdevopenvswitch.h" #include "virnetdevopenvswitch.h"
...@@ -6737,14 +6738,24 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev, ...@@ -6737,14 +6738,24 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
int ret = 0; int ret = 0;
virQEMUDriverPtr driver = opaque; virQEMUDriverPtr driver = opaque;
virQEMUCapsPtr qemuCaps = NULL; virQEMUCapsPtr qemuCaps = NULL;
virDomainCapsPtr domCaps = NULL;
if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache, if (!(qemuCaps = virQEMUCapsCacheLookup(driver->qemuCapsCache,
def->emulator))) def->emulator)))
return -1; return -1;
if (!(domCaps = virQEMUDriverGetDomainCapabilities(driver, qemuCaps,
def->os.machine,
def->os.arch,
def->virtType)))
goto cleanup;
if ((ret = qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0) if ((ret = qemuDomainDeviceDefValidateAddress(dev, qemuCaps)) < 0)
goto cleanup; goto cleanup;
if (virDomainCapsDeviceDefValidate(domCaps, dev, def) < 0)
goto cleanup;
switch ((virDomainDeviceType)dev->type) { switch ((virDomainDeviceType)dev->type) {
case VIR_DOMAIN_DEVICE_NET: case VIR_DOMAIN_DEVICE_NET:
ret = qemuDomainDeviceDefValidateNetwork(dev->data.net); ret = qemuDomainDeviceDefValidateNetwork(dev->data.net);
...@@ -6831,6 +6842,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev, ...@@ -6831,6 +6842,7 @@ qemuDomainDeviceDefValidate(const virDomainDeviceDef *dev,
cleanup: cleanup:
virObjectUnref(qemuCaps); virObjectUnref(qemuCaps);
virObjectUnref(domCaps);
return ret; return ret;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册