lkml.org 
[lkml]   [2020]   [Jun]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v3 13/15] arm64: kvm: Add comments around __kvm_nvhe_ symbol aliases
    Date
    This patch is part of a series which builds KVM's non-VHE hyp code separately
    from VHE and the rest of the kernel.

    With all source files split between VHE/nVHE, add comments around the list of
    symbols where nVHE code still links against kernel proper. Split them into
    groups and explain how each group is currently used.

    Some of these dependencies will be removed in the future.

    Signed-off-by: David Brazdil <dbrazdil@google.com>
    ---
    arch/arm64/kernel/image-vars.h | 53 +++++++++++++++++++++-------------
    1 file changed, 33 insertions(+), 20 deletions(-)

    diff --git a/arch/arm64/kernel/image-vars.h b/arch/arm64/kernel/image-vars.h
    index 2cc3e7673dc2..da8f39fae5e8 100644
    --- a/arch/arm64/kernel/image-vars.h
    +++ b/arch/arm64/kernel/image-vars.h
    @@ -61,30 +61,43 @@ __efistub__ctype = _ctype;
    * memory mappings.
    */

    -__kvm_nvhe___hyp_panic_string = __hyp_panic_string;
    -__kvm_nvhe___hyp_stub_vectors = __hyp_stub_vectors;
    -__kvm_nvhe___icache_flags = __icache_flags;
    -__kvm_nvhe_arm64_const_caps_ready = arm64_const_caps_ready;
    -__kvm_nvhe_arm64_enable_wa2_handling = arm64_enable_wa2_handling;
    -__kvm_nvhe_arm64_ssbd_callback_required = arm64_ssbd_callback_required;
    -__kvm_nvhe_cpu_hwcap_keys = cpu_hwcap_keys;
    -__kvm_nvhe_cpu_hwcaps = cpu_hwcaps;
    +/* If nVHE code panics, it ERETs into panic() in EL1. */
    +__kvm_nvhe___hyp_panic_string = __hyp_panic_string;
    +__kvm_nvhe_panic = panic;
    +
    +/* Values used by the hyp-init vector. */
    +__kvm_nvhe___hyp_stub_vectors = __hyp_stub_vectors;
    +__kvm_nvhe_idmap_t0sz = idmap_t0sz;
    +
    +/* Alternative callbacks, referenced in .altinstructions. Executed in EL1. */
    +__kvm_nvhe_arm64_enable_wa2_handling = arm64_enable_wa2_handling;
    +__kvm_nvhe_kvm_patch_vector_branch = kvm_patch_vector_branch;
    +__kvm_nvhe_kvm_update_va_mask = kvm_update_va_mask;
    +
    +/* Values used to convert between memory mappings, read-only after init. */
    +__kvm_nvhe_kimage_voffset = kimage_voffset;
    +
    +/* Data shared with the kernel. */
    +__kvm_nvhe_cpu_hwcaps = cpu_hwcaps;
    +__kvm_nvhe_cpu_hwcap_keys = cpu_hwcap_keys;
    +__kvm_nvhe___icache_flags = __icache_flags;
    +__kvm_nvhe_kvm_vgic_global_state = kvm_vgic_global_state;
    +__kvm_nvhe_arm64_ssbd_callback_required = arm64_ssbd_callback_required;
    +__kvm_nvhe_kvm_host_data = kvm_host_data;
    +
    +/* Static keys shared with the kernel. */
    +__kvm_nvhe_arm64_const_caps_ready = arm64_const_caps_ready;
    #ifdef CONFIG_ARM64_PSEUDO_NMI
    -__kvm_nvhe_gic_pmr_sync = gic_pmr_sync;
    +__kvm_nvhe_gic_pmr_sync = gic_pmr_sync;
    #endif
    -__kvm_nvhe_idmap_t0sz = idmap_t0sz;
    -__kvm_nvhe_kimage_voffset = kimage_voffset;
    -__kvm_nvhe_kvm_host_data = kvm_host_data;
    -__kvm_nvhe_kvm_patch_vector_branch = kvm_patch_vector_branch;
    -__kvm_nvhe_kvm_update_va_mask = kvm_update_va_mask;
    -__kvm_nvhe_kvm_vgic_global_state = kvm_vgic_global_state;
    -__kvm_nvhe_panic = panic;
    +__kvm_nvhe_vgic_v2_cpuif_trap = vgic_v2_cpuif_trap;
    +__kvm_nvhe_vgic_v3_cpuif_trap = vgic_v3_cpuif_trap;
    +
    +/* SVE support, currently unused by nVHE. */
    #ifdef CONFIG_ARM64_SVE
    -__kvm_nvhe_sve_load_state = sve_load_state;
    -__kvm_nvhe_sve_save_state = sve_save_state;
    +__kvm_nvhe_sve_save_state = sve_save_state;
    +__kvm_nvhe_sve_load_state = sve_load_state;
    #endif
    -__kvm_nvhe_vgic_v2_cpuif_trap = vgic_v2_cpuif_trap;
    -__kvm_nvhe_vgic_v3_cpuif_trap = vgic_v3_cpuif_trap;

    #endif /* CONFIG_KVM */

    --
    2.27.0
    \
     
     \ /
      Last update: 2020-06-18 14:32    [W:4.242 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site