arm64/sve: Remove ZCR pseudo register from cpufeature code
authorMark Brown <broonie@kernel.org>
Wed, 13 Sep 2023 14:48:12 +0000 (15:48 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 25 Sep 2023 15:14:49 +0000 (16:14 +0100)
commitabef0695f9665c3dbe9473f964c4da3c1f7c5d3f
tree1999ca1aab4f24a5f9665ef442b9b9e8489c7426
parent6465e260f48790807eef06b583b38ca9789b6072
arm64/sve: Remove ZCR pseudo register from cpufeature code

For reasons that are not currently apparent during cpufeature enumeration
we maintain a pseudo register for ZCR which records the maximum supported
vector length using the value that would be written to ZCR_EL1.LEN to
configure it. This is not exposed to userspace and is not sufficient for
detecting unsupportable configurations, we need the more detailed checks in
vec_update_vq_map() for that since we can't cope with missing vector
lengths on late CPUs and KVM requires an exactly matching set of supported
vector lengths as EL1 can enumerate VLs directly with the hardware.

Remove the code, replacing the usage in sve_setup() with a query of the
vq_map.

Signed-off-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20230913-arm64-vec-len-cpufeature-v1-1-cc69b0600a8a@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
arch/arm64/include/asm/cpu.h
arch/arm64/include/asm/fpsimd.h
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/fpsimd.c