Sean Christopherson <[email protected]> writes: > 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. > > Signed-off-by: Sean Christopherson <[email protected]> > --- > arch/x86/kvm/svm/hyperv.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/arch/x86/kvm/svm/hyperv.c b/arch/x86/kvm/svm/hyperv.c > index 3ec580d687f5..4f24dcb45116 100644 > --- a/arch/x86/kvm/svm/hyperv.c > +++ b/arch/x86/kvm/svm/hyperv.c > @@ -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;
Reviewed-by: Vitaly Kuznetsov <[email protected]> Alternatively (or additionally?) to BUG_ON, I guess we could've #define HV_SVM_EXITCODE_ENL SVM_EXIT_SW unless including SVM's headers into include/hyperv/hvgdk.h is too big of a mess. -- Vitaly
