In 076591009ad a validation code was added to
virDomainDeviceInfoFormat() which reports an error if zPCI
address entered in was incomplete. But, there are two problems
with this approach.
The first problem is the placement of the code - it doesn't
belong into XML formatter rather than XML validator.
The second one is that the code doesn't check if the PCI address
it's validating has zPCI extension and thus the error is reported
for normal PCI addresses too, hence the change of the function
that's being called.
The second problem is addressed in d482cf6bef which doesn't
address the first problem.
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
src/conf/domain_conf.c | 4 ----
src/qemu/qemu_validate.c | 6 ++++++
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 33f177b16f..0c883cd834 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7523,10 +7523,6 @@ virDomainDeviceInfoFormat(virBufferPtr buf,
}
if (virZPCIDeviceAddressIsPresent(&info->addr.pci.zpci)) {
- if (virZPCIDeviceAddressIsIncomplete(&info->addr.pci.zpci))
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("Missing uid or fid attribute of zPCI
address"));
-
virBufferAsprintf(&childBuf,
"<zpci uid='0x%.4x'
fid='0x%.8x'/>\n",
info->addr.pci.zpci.uid.value,
diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c
index 78efa68584..2d3a2ec93a 100644
--- a/src/qemu/qemu_validate.c
+++ b/src/qemu/qemu_validate.c
@@ -1028,6 +1028,12 @@ qemuValidateDomainDeviceDefZPCIAddress(virDomainDeviceInfoPtr
info,
return -1;
}
+ if (virDeviceInfoPCIAddressExtensionIsWanted(info)) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("Missing uid or fid attribute of zPCI address"));
+ return -1;
+ }
+
/* We don't need to check fid because fid covers
* all range of uint32 type.
*/
--
2.26.2