lkml.org 
[lkml]   [2021]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    Subject[RFC PATCH v2 08/26] KVM: arm64: Make kvm_call_hyp() a function call at Hyp
    From
    kvm_call_hyp() has some logic to issue a function call or a hypercall
    depending the EL at which the kernel is running. However, all the code
    compiled under __KVM_NVHE_HYPERVISOR__ is guaranteed to run only at EL2,
    and in this case a simple function call is needed.

    Add ifdefery to kvm_host.h to symplify kvm_call_hyp() in .hyp.text.

    Signed-off-by: Quentin Perret <qperret@google.com>
    ---
    arch/arm64/include/asm/kvm_host.h | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/arch/arm64/include/asm/kvm_host.h b/arch/arm64/include/asm/kvm_host.h
    index 8fcfab0c2567..81212958ef55 100644
    --- a/arch/arm64/include/asm/kvm_host.h
    +++ b/arch/arm64/include/asm/kvm_host.h
    @@ -592,6 +592,7 @@ int kvm_test_age_hva(struct kvm *kvm, unsigned long hva);
    void kvm_arm_halt_guest(struct kvm *kvm);
    void kvm_arm_resume_guest(struct kvm *kvm);

    +#ifndef __KVM_NVHE_HYPERVISOR__
    #define kvm_call_hyp_nvhe(f, ...) \
    ({ \
    struct arm_smccc_res res; \
    @@ -631,6 +632,11 @@ void kvm_arm_resume_guest(struct kvm *kvm);
    \
    ret; \
    })
    +#else /* __KVM_NVHE_HYPERVISOR__ */
    +#define kvm_call_hyp(f, ...) f(__VA_ARGS__)
    +#define kvm_call_hyp_ret(f, ...) f(__VA_ARGS__)
    +#define kvm_call_hyp_nvhe(f, ...) f(__VA_ARGS__)
    +#endif /* __KVM_NVHE_HYPERVISOR__ */

    void force_vm_exit(const cpumask_t *mask);
    void kvm_mmu_wp_memory_region(struct kvm *kvm, int slot);
    --
    2.30.0.284.gd98b1dd5eaa7-goog
    \
     
     \ /
      Last update: 2021-01-08 13:41    [W:4.801 / U:0.392 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site