Hi Daniel,
Sorry for the incorrect code. Thank you for identifying and fixing it:-)
I would like to know, how did you identify the error?,
Is it possible to check for internal errors with the help of unit tests?
Your answer would help me able to identify any incorrect code before
sending the patch.
Warm Regards
Shalini C S
On 6/26/20 11:49 PM, Daniel Henrique Barboza wrote:
Commit 076591009ad1 ("conf: fix zPCI address auto-generation on
s390") is doing a check for virZPCIDeviceAddressIsIncomplete()
prior to checking if the device has a ZPCI address at all. This
results in errors like these when starting Libvirt:
error : virDomainDeviceInfoFormat:7527 : internal error:
Missing uid or fid attribute of zPCI address
Fix it by moving virZPCIDeviceAddressIsIncomplete() after the
check done by virZPCIDeviceAddressIsPresent().
Fixes: 076591009ad11ec108521b52a4945d0f895fa160
CC: Bjoern Walk <bwalk(a)linux.ibm.com>
CC: Boris Fiuczynski <fiuczy(a)linux.ibm.com>
CC: Shalini Chellathurai Saroja <shalini(a)linux.ibm.com>
CC: Andrea Bolognani <abologna(a)redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/conf/domain_conf.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 31ba78b950..33f177b16f 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7522,11 +7522,11 @@ virDomainDeviceInfoFormat(virBufferPtr buf,
virTristateSwitchTypeToString(info->addr.pci.multi));
}
- if (virZPCIDeviceAddressIsIncomplete(&info->addr.pci.zpci)) {
- virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("Missing uid or fid attribute of zPCI
address"));
- }
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,