]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: SVM: Assert that Hyper-V's HV_SVM_EXITCODE_ENL == SVM_EXIT_SW
authorSean Christopherson <seanjc@google.com>
Tue, 30 Dec 2025 21:13:47 +0000 (13:13 -0800)
committerSean Christopherson <seanjc@google.com>
Wed, 14 Jan 2026 01:37:03 +0000 (17:37 -0800)
Add a build-time assertiont that Hyper-V's "enlightened" exit code is that,
same as the AMD-defined "Reserved for Host" exit code, mostly to help
readers connect the dots and understand why synthesizing a software-defined
exit code is safe/ok.

Reviewed-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Link: https://patch.msgid.link/20251230211347.4099600-9-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/hyperv.c

index 3ec580d687f5f60b7f696f4aa91846121a92d8a8..4f24dcb45116d7e724dc09a77a599c6bcfe7f13a 100644 (file)
@@ -10,6 +10,12 @@ void svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu *vcpu)
 {
        struct vcpu_svm *svm = to_svm(vcpu);
 
+       /*
+        * The exit code used by Hyper-V for software-defined exits is reserved
+        * by AMD specifically for such use cases.
+        */
+       BUILD_BUG_ON(HV_SVM_EXITCODE_ENL != SVM_EXIT_SW);
+
        svm->vmcb->control.exit_code = HV_SVM_EXITCODE_ENL;
        svm->vmcb->control.exit_info_1 = HV_SVM_ENL_EXITCODE_TRAP_AFTER_FLUSH;
        svm->vmcb->control.exit_info_2 = 0;