1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 3 * AMD SVM specific code for Hyper-V on KVM. 4 * 5 * Copyright 2022 Red Hat, Inc. and/or its affiliates. 6 */ 7 #include "hyperv.h" 8 9 void svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu *vcpu) 10 { 11 struct vcpu_svm *svm = to_svm(vcpu); 12 13 /* 14 * The exit code used by Hyper-V for software-defined exits is reserved 15 * by AMD specifically for such use cases. 16 */ 17 BUILD_BUG_ON(HV_SVM_EXITCODE_ENL != SVM_EXIT_SW); 18 19 svm->vmcb->control.exit_code = HV_SVM_EXITCODE_ENL; 20 svm->vmcb->control.exit_info_1 = HV_SVM_ENL_EXITCODE_TRAP_AFTER_FLUSH; 21 svm->vmcb->control.exit_info_2 = 0; 22 nested_svm_vmexit(svm); 23 } 24