forked from pool/libvirt
24031b84de
- 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
123 lines
4.7 KiB
Diff
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))
|