SHA256
1
0
forked from pool/libvirt
libvirt/19d4e467-conf-improve-virDomainVirtioOptionsCheckABIStability.patch
James Fehlig 24031b84de Accepting request 873207 from home:jfehlig:branches:Virtualization
- qemu: Add virtio related options to vsock
  8a4b8996-conf-move-virDomainCheckVirtioOptions.patch,
  c05f0066-conf-drop-empty-virDomainNetDefPostParse.patch,
  19d4e467-conf-improve-virDomainVirtioOptionsCheckABIStability.patch,
  bd112c9e-qemu-virtio-options-vsock.patch
  bsc#1182365

OBS-URL: https://build.opensuse.org/request/show/873207
OBS-URL: https://build.opensuse.org/package/show/Virtualization/libvirt?expand=0&rev=876
2021-02-17 17:48:35 +00:00

123 lines
4.7 KiB
Diff

commit 19d4e467707e187f6736f24a35f5a51275d869ce
Author: Michal Prívozník <mprivozn@redhat.com>
Date: Thu Jan 28 14:13:32 2021 +0100
conf: Improve virDomainVirtioOptionsCheckABIStability()
The virDomainVirtioOptionsCheckABIStability() function is called
from various ABI stability check functions. Every caller checks
if both old and new definitions have virtio options set and only
after that they call the function. This is suboptimal because:
a) this check can be done in the function itself (making all
callers shorter),
b) is inherently wrong, because it doesn't catch case where one
definition has virtio options set and the other doesn't.
Do proper checks at the beginning of the function and simplify
its calls.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Index: libvirt-7.0.0/src/conf/domain_conf.c
===================================================================
--- libvirt-7.0.0.orig/src/conf/domain_conf.c
+++ libvirt-7.0.0/src/conf/domain_conf.c
@@ -21491,6 +21491,15 @@ static bool
virDomainVirtioOptionsCheckABIStability(virDomainVirtioOptionsPtr src,
virDomainVirtioOptionsPtr dst)
{
+ if (!src && !dst)
+ return true;
+
+ if (!src || !dst) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+ _("Target device virtio options don't match the source"));
+ return false;
+ }
+
if (src->iommu != dst->iommu) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Target device iommu option '%s' does not "
@@ -21575,8 +21584,7 @@ virDomainDiskDefCheckABIStability(virDom
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21635,8 +21643,7 @@ virDomainControllerDefCheckABIStability(
}
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21669,8 +21676,7 @@ virDomainFsDefCheckABIStability(virDomai
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21718,8 +21724,7 @@ virDomainNetDefCheckABIStability(virDoma
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21757,8 +21762,7 @@ virDomainInputDefCheckABIStability(virDo
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -21857,8 +21861,7 @@ virDomainVideoDefCheckABIStability(virDo
}
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -22071,8 +22074,7 @@ virDomainMemballoonDefCheckABIStability(
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
@@ -22094,8 +22096,7 @@ virDomainRNGDefCheckABIStability(virDoma
return false;
}
- if (src->virtio && dst->virtio &&
- !virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
+ if (!virDomainVirtioOptionsCheckABIStability(src->virtio, dst->virtio))
return false;
if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))