hyperv.h (7ae9fb1b7ecbb5d85d07857943f677fd1a559b18) | hyperv.h (b4f69df0f65e97fec439130a0d0a8b9c7cc02df2) |
---|---|
1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Common Hyper-V on KVM and KVM on Hyper-V definitions (SVM). 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 | 1/* SPDX-License-Identifier: GPL-2.0-only */ 2/* 3 * Common Hyper-V on KVM and KVM on Hyper-V definitions (SVM). 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 |
|
14static inline void nested_svm_hv_update_vm_vp_ids(struct kvm_vcpu *vcpu) 15{ 16 struct vcpu_svm *svm = to_svm(vcpu); 17 struct hv_vmcb_enlightenments *hve = &svm->nested.ctl.hv_enlightenments; 18 struct kvm_vcpu_hv *hv_vcpu = to_hv_vcpu(vcpu); 19 20 if (!hv_vcpu) 21 return; --- 14 unchanged lines hidden (view full) --- 36 37 if (!hve->hv_enlightenments_control.nested_flush_hypercall) 38 return false; 39 40 return hv_vcpu->vp_assist_page.nested_control.features.directhypercall; 41} 42 43void svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu *vcpu); | 15static inline void nested_svm_hv_update_vm_vp_ids(struct kvm_vcpu *vcpu) 16{ 17 struct vcpu_svm *svm = to_svm(vcpu); 18 struct hv_vmcb_enlightenments *hve = &svm->nested.ctl.hv_enlightenments; 19 struct kvm_vcpu_hv *hv_vcpu = to_hv_vcpu(vcpu); 20 21 if (!hv_vcpu) 22 return; --- 14 unchanged lines hidden (view full) --- 37 38 if (!hve->hv_enlightenments_control.nested_flush_hypercall) 39 return false; 40 41 return hv_vcpu->vp_assist_page.nested_control.features.directhypercall; 42} 43 44void svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu *vcpu); |
45#else /* CONFIG_KVM_HYPERV */ 46static inline void nested_svm_hv_update_vm_vp_ids(struct kvm_vcpu *vcpu) {} 47static inline bool nested_svm_l2_tlb_flush_enabled(struct kvm_vcpu *vcpu) 48{ 49 return false; 50} 51static inline void svm_hv_inject_synthetic_vmexit_post_tlb_flush(struct kvm_vcpu *vcpu) {} 52#endif /* CONFIG_KVM_HYPERV */ |
|
44 45#endif /* __ARCH_X86_KVM_SVM_HYPERV_H__ */ | 53 54#endif /* __ARCH_X86_KVM_SVM_HYPERV_H__ */ |