In a few places we use cpus_have_const_cap() in hyp code, usually because this is hidden within a helper that's also used in regular kernel context. As cpus_have_const_cap() generates code to read the cpu_hwcaps array before capabilities are finalized, this means we generate some potentially-unsound references to regular kernel VAs, but this these are redundant as capabilities are finalized before we initialize the kvm hyp code. This series gets rid of the redundant code by automatically upgrading cpust_have_const_cap() to cpus_have_final_cap() when used in hyp code. This allows us to avoid creating an NVHE alias for the cpu_hwcaps array, so we can catch if we accidentally introduce an runtime reference to this (e.g. via cpus_have_cap()). Since v1 [1]: * Trivial rebase to v5.10-rc1 [1] https://lore.kernel.org/r/20201007125211.30043-1-mark.rutland@xxxxxxx Mark Rutland (3): arm64: kvm: factor out is_{vhe,nvhe}_hyp_code() arm64: cpufeature: reorder cpus_have_{const,final}_cap() arm64: cpufeature: upgrade hyp caps to final arch/arm64/include/asm/cpufeature.h | 40 ++++++++++++++++++++++++++++--------- arch/arm64/include/asm/virt.h | 9 ++++----- arch/arm64/kernel/image-vars.h | 1 - 3 files changed, 35 insertions(+), 15 deletions(-) -- 2.11.0 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm