]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu_validate: Reflect dependencies of hv-tlbflush-direct
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 8 Oct 2025 10:24:12 +0000 (12:24 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Tue, 14 Oct 2025 07:46:00 +0000 (09:46 +0200)
Per QEMU documentation (docs/system/i386/hyperv.rst):

``hv-tlbflush-direct``
  The enlightenment is nested specific, it targets Hyper-V on KVM guests. <snip/>

  Requires: ``hv-vapic``

Reflect this dependency when validating domain definition.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_validate.c

index 3dbb00c23a7da416aaa608eaf7bd3b64f834a4b9..930ba3543f992999e1a542e5c514c0ae44407557 100644 (file)
@@ -133,6 +133,17 @@ qemuValidateDomainDefHypervFeatures(const virDomainDef *def)
 
     CHECK_HV_FEAT(VIR_DOMAIN_HYPERV_EVMCS, VIR_DOMAIN_HYPERV_VAPIC);
 
+    if (def->hyperv_features[VIR_DOMAIN_HYPERV_TLBFLUSH] == VIR_TRISTATE_SWITCH_ON &&
+        def->hyperv_tlbflush_direct == VIR_TRISTATE_SWITCH_ON) {
+        if (def->hyperv_features[VIR_DOMAIN_HYPERV_VAPIC] != VIR_TRISTATE_SWITCH_ON) {
+            virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                           _("'%1$s' hyperv feature requires '%2$s' feature"),
+                           VIR_CPU_x86_HV_TLBFLUSH_DIRECT,
+                           virDomainHypervTypeToString(VIR_DOMAIN_HYPERV_VAPIC));
+            return -1;
+        }
+    }
+
     return 0;
 }