• Mark Rutland's avatar
    arm64: cpufeature: upgrade hyp caps to final · d86de40d
    Mark Rutland authored
    We finalize caps before initializing kvm hyp code, and any use of
    cpus_have_const_cap() in kvm hyp code generates redundant and
    potentially unsound code to read the cpu_hwcaps array.
    
    A number of helper functions used in both hyp context and regular kernel
    context use cpus_have_const_cap(), as some regular kernel code runs
    before the capabilities are finalized. It's tedious and error-prone to
    write separate copies of these for hyp and non-hyp code.
    
    So that we can avoid the redundant code, let's automatically upgrade
    cpus_have_const_cap() to cpus_have_final_cap() when used in hyp context.
    With this change, there's never a reason to access to cpu_hwcaps array
    from hyp code, and we don't need to create an NVHE alias for this.
    
    This should have no effect on non-hyp code.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Acked-by: default avatarWill Deacon <will@kernel.org>
    Cc: David Brazdil <dbrazdil@google.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20201026134931.28246-4-mark.rutland@arm.com
    d86de40d
virt.h 2.66 KB