xref: /openbmc/linux/arch/x86/kvm/svm/hyperv.c (revision 7ae9fb1b7ecbb5d85d07857943f677fd1a559b18)
1b0c9c25eSVitaly Kuznetsov // SPDX-License-Identifier: GPL-2.0-only
2b0c9c25eSVitaly Kuznetsov /*
3b0c9c25eSVitaly Kuznetsov  * AMD SVM specific code for Hyper-V on KVM.
4b0c9c25eSVitaly Kuznetsov  *
5b0c9c25eSVitaly Kuznetsov  * Copyright 2022 Red Hat, Inc. and/or its affiliates.
6b0c9c25eSVitaly Kuznetsov  */
7b0c9c25eSVitaly Kuznetsov #include "hyperv.h"
8b0c9c25eSVitaly Kuznetsov 
svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu * vcpu)9b0c9c25eSVitaly Kuznetsov void svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu *vcpu)
10b0c9c25eSVitaly Kuznetsov {
11*3f4a812eSVitaly Kuznetsov 	struct vcpu_svm *svm = to_svm(vcpu);
12*3f4a812eSVitaly Kuznetsov 
13*3f4a812eSVitaly Kuznetsov 	svm->vmcb->control.exit_code = HV_SVM_EXITCODE_ENL;
14*3f4a812eSVitaly Kuznetsov 	svm->vmcb->control.exit_code_hi = 0;
15*3f4a812eSVitaly Kuznetsov 	svm->vmcb->control.exit_info_1 = HV_SVM_ENL_EXITCODE_TRAP_AFTER_FLUSH;
16*3f4a812eSVitaly Kuznetsov 	svm->vmcb->control.exit_info_2 = 0;
17*3f4a812eSVitaly Kuznetsov 	nested_svm_vmexit(svm);
18b0c9c25eSVitaly Kuznetsov }
19