summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/arm64
diff options
context:
space:
mode:
authorMark Brown <broonie@kernel.org>2023-01-31 22:56:35 +0000
committerCatalin Marinas <catalin.marinas@arm.com>2023-02-01 17:21:33 +0000
commita7db82f18cd3d85ea8ef70fca5946b441187ed6d (patch)
tree166952eff0b47704191939c860414d663224e391 /tools/testing/selftests/arm64
parent5f389238534ac8ca4ee3ab12eeb89d3984d303a1 (diff)
downloadlinux-stable-a7db82f18cd3d85ea8ef70fca5946b441187ed6d.tar.gz
linux-stable-a7db82f18cd3d85ea8ef70fca5946b441187ed6d.tar.bz2
linux-stable-a7db82f18cd3d85ea8ef70fca5946b441187ed6d.zip
kselftest/arm64: Fix enumeration of systems without 128 bit SME for SSVE+ZA
The current signal handling tests for SME do not account for the fact that unlike SVE all SME vector lengths are optional so we can't guarantee that we will encounter the minimum possible VL, they will hang enumerating VLs on such systems. Abort enumeration when we find the lowest VL in the newly added ssve_za_regs test. Fixes: bc69da5ff087 ("kselftest/arm64: Verify simultaneous SSVE and ZA context generation") Signed-off-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20230131-arm64-kselftest-sig-sme-no-128-v1-2-d47c13dc8e1e@kernel.org Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Diffstat (limited to 'tools/testing/selftests/arm64')
-rw-r--r--tools/testing/selftests/arm64/signal/testcases/ssve_za_regs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/tools/testing/selftests/arm64/signal/testcases/ssve_za_regs.c b/tools/testing/selftests/arm64/signal/testcases/ssve_za_regs.c
index 954a21f6121a..1f62621794d5 100644
--- a/tools/testing/selftests/arm64/signal/testcases/ssve_za_regs.c
+++ b/tools/testing/selftests/arm64/signal/testcases/ssve_za_regs.c
@@ -34,6 +34,10 @@ static bool sme_get_vls(struct tdescr *td)
vl &= PR_SME_VL_LEN_MASK;
+ /* Did we find the lowest supported VL? */
+ if (vq < sve_vq_from_vl(vl))
+ break;
+
/* Skip missing VLs */
vq = sve_vq_from_vl(vl);