arm64: Add ARM64_HAS_LPA2 CPU capability
authorRyan Roberts <ryan.roberts@arm.com>
Mon, 27 Nov 2023 11:17:30 +0000 (11:17 +0000)
committerMarc Zyngier <maz@kernel.org>
Mon, 27 Nov 2023 15:03:50 +0000 (15:03 +0000)
commitb1366d21daaebb8e474e4169c5e557fbb37bfdc0
tree44de9e75a1196c7d0bc85f7536ad1b49a0cc1384
parente477c8c483913de92c9cc00b34459dc4d695529b
arm64: Add ARM64_HAS_LPA2 CPU capability

Expose FEAT_LPA2 as a capability so that we can take advantage of
alternatives patching in the hypervisor.

Although FEAT_LPA2 presence is advertised separately for stage1 and
stage2, the expectation is that in practice both stages will either
support or not support it. Therefore, we combine both into a single
capability, allowing us to simplify the implementation. KVM requires
support in both stages in order to use LPA2 since the same library is
used for hyp stage 1 and guest stage 2 pgtables.

Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Ryan Roberts <ryan.roberts@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20231127111737.1897081-6-ryan.roberts@arm.com
arch/arm64/include/asm/cpufeature.h
arch/arm64/kernel/cpufeature.c
arch/arm64/tools/cpucaps