[libvirt PATCH 2/2] virDomainFeaturesHyperVDefParse: Compare hyperv mode
Michal Prívozník
mprivozn at redhat.com
Wed Dec 15 08:18:03 UTC 2021
On 12/14/21 17:53, Tim Wiederhake wrote:
> Previous patch neglected the possibility of different modes for hyperv
> (e.g. "custom" and "passthrough").
>
> Fixes: 6e83fafe331dd0b4fb19aa384c3dd36b3af62933
> Signed-off-by: Tim Wiederhake <twiederh at redhat.com>
> ---
> src/conf/domain_conf.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index 9a21ac10ce..2d8851fa11 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -21734,6 +21734,15 @@ virDomainDefFeaturesCheckABIStability(virDomainDef *src,
> }
>
> /* hyperv */
> + if (src->features[VIR_DOMAIN_FEATURE_HYPERV] != dst->features[VIR_DOMAIN_FEATURE_HYPERV]) {
> + virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> + _("State of HyperV enlightenment mode differs: "
> + "source: '%s', destination: '%s'"),
> + virDomainHyperVModeTypeToString(src->features[VIR_DOMAIN_FEATURE_HYPERV]),
> + virDomainHyperVModeTypeToString(dst->features[VIR_DOMAIN_FEATURE_HYPERV]));
> + return false;
> + }
> +
> if (src->features[VIR_DOMAIN_FEATURE_HYPERV] != VIR_DOMAIN_HYPERV_MODE_NONE) {
> for (i = 0; i < VIR_DOMAIN_HYPERV_LAST; i++) {
> switch ((virDomainHyperv) i) {
I worry that this is effectively a dead code. In this function, just a
couple of lines earlier we have:
for (i = 0; i < VIR_DOMAIN_FEATURE_LAST; i++) {
const char *featureName = virDomainFeatureTypeToString(i);
switch ((virDomainFeature) i) {
...
case VIR_DOMAIN_FEATURE_HYPERV:
...
if (src->features[i] != dst->features[i]) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("State of feature '%s' differs: "
"source: '%s', destination: '%s'"),
featureName, ....
return false;
}
break;
So if VIR_DOMAIN_FEATURE_HYPERV is not the same on src and dst we will
never get to this code you're adding.
Michal
More information about the libvir-list
mailing list