Move the check made in virDomainControllerDefParseXML() to
virDomainControllerDefPostParse().
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/conf/domain_conf.c | 16 ++++++++++------
tests/qemuxml2argvdata/pci-root-address.err | 2 +-
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 9ca979b345..c17f5479ba 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -5382,6 +5382,16 @@ virDomainControllerDefPostParse(virDomainControllerDefPtr cdev)
if (cdev->type == VIR_DOMAIN_CONTROLLER_TYPE_PCI) {
virDomainPCIControllerOpts pciOpts = cdev->opts.pciopts;
+ if (cdev->model == VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT ||
+ cdev->model == VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT) {
+ if (cdev->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("pci-root and pcie-root controllers "
+ "should not have an address"));
+ return -1;
+ }
+ }
+
if (pciOpts.chassisNr != -1) {
if (pciOpts.chassisNr < 1 || pciOpts.chassisNr > 255) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
@@ -11423,12 +11433,6 @@ virDomainControllerDefParseXML(virDomainXMLOptionPtr xmlopt,
case VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT:
case VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT: {
unsigned long long bytes;
- if (def->info.type != VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) {
- virReportError(VIR_ERR_XML_ERROR, "%s",
- _("pci-root and pcie-root controllers should not
"
- "have an address"));
- goto error;
- }
if ((rc = virParseScaledValue("./pcihole64", NULL,
ctxt, &bytes, 1024,
1024ULL * ULONG_MAX, false)) < 0)
diff --git a/tests/qemuxml2argvdata/pci-root-address.err
b/tests/qemuxml2argvdata/pci-root-address.err
index 53dad81985..ffe5438224 100644
--- a/tests/qemuxml2argvdata/pci-root-address.err
+++ b/tests/qemuxml2argvdata/pci-root-address.err
@@ -1 +1 @@
-XML error: pci-root and pcie-root controllers should not have an address
+unsupported configuration: pci-root and pcie-root controllers should not have an address
--
2.26.2