[PATCHv2 0/3] arm64: kvm: avoid referencing cpu_hwcaps from hyp

Marc Zyngier maz at kernel.org
Thu Oct 29 15:48:16 EDT 2020


[+ Catalin]

On Mon, 26 Oct 2020 13:49:28 +0000,
Mark Rutland <mark.rutland at arm.com> wrote:
> 
> 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@arm.com
> 
> 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(-)

Catalin, Will: can I get an Ack for patches 2 and 3? I'd be quite
happy to drop yet another reference from the nVHE object...

Thanks,

	M.

-- 
Without deviation from the norm, progress is not possible.



More information about the linux-arm-kernel mailing list