1 /* SPDX-License-Identifier: GPL-2.0-only */ 1 2 /* 3 * Common Hyper-V on KVM and KVM on Hyper-V de 4 */ 5 6 #ifndef __ARCH_X86_KVM_SVM_HYPERV_H__ 7 #define __ARCH_X86_KVM_SVM_HYPERV_H__ 8 9 #include <asm/mshyperv.h> 10 11 #include "../hyperv.h" 12 #include "svm.h" 13 14 #ifdef CONFIG_KVM_HYPERV 15 static inline void nested_svm_hv_update_vm_vp_ 16 { 17 struct vcpu_svm *svm = to_svm(vcpu); 18 struct hv_vmcb_enlightenments *hve = & 19 struct kvm_vcpu_hv *hv_vcpu = to_hv_vc 20 21 if (!hv_vcpu) 22 return; 23 24 hv_vcpu->nested.pa_page_gpa = hve->par 25 hv_vcpu->nested.vm_id = hve->hv_vm_id; 26 hv_vcpu->nested.vp_id = hve->hv_vp_id; 27 } 28 29 static inline bool nested_svm_l2_tlb_flush_ena 30 { 31 struct vcpu_svm *svm = to_svm(vcpu); 32 struct hv_vmcb_enlightenments *hve = & 33 struct kvm_vcpu_hv *hv_vcpu = to_hv_vc 34 35 if (!hv_vcpu) 36 return false; 37 38 if (!hve->hv_enlightenments_control.ne 39 return false; 40 41 return hv_vcpu->vp_assist_page.nested_ 42 } 43 44 void svm_hv_inject_synthetic_vmexit_post_tlb_f 45 #else /* CONFIG_KVM_HYPERV */ 46 static inline void nested_svm_hv_update_vm_vp_ 47 static inline bool nested_svm_l2_tlb_flush_ena 48 { 49 return false; 50 } 51 static inline void svm_hv_inject_synthetic_vme 52 #endif /* CONFIG_KVM_HYPERV */ 53 54 #endif /* __ARCH_X86_KVM_SVM_HYPERV_H__ */ 55
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.