| From fb6959a1ba6659e8fe0de386522fa1f1c024cae9 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 27 Dec 2022 13:06:35 +0000 |
| Subject: kselftest/arm64: Fix syscall-abi for systems without 128 bit SME |
| |
| From: Mark Brown <broonie@kernel.org> |
| |
| [ Upstream commit 97ec597b26df774a257e3f8e97353fd1b4471615 ] |
| |
| SME does not mandate any specific VL so we may not have 128 bit SME but |
| the algorithm used for enumerating VLs assumes that we will. Add the |
| required check to ensure that the algorithm terminates. |
| |
| Fixes: 43e3f85523e4 ("kselftest/arm64: Add SME support to syscall ABI test") |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Link: https://lore.kernel.org/r/20221223-arm64-syscall-abi-sme-only-v1-1-4fabfbd62087@kernel.org |
| Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| tools/testing/selftests/arm64/abi/syscall-abi.c | 8 ++++++++ |
| 1 file changed, 8 insertions(+) |
| |
| diff --git a/tools/testing/selftests/arm64/abi/syscall-abi.c b/tools/testing/selftests/arm64/abi/syscall-abi.c |
| index dd7ebe536d05f..ffe719b50c215 100644 |
| --- a/tools/testing/selftests/arm64/abi/syscall-abi.c |
| +++ b/tools/testing/selftests/arm64/abi/syscall-abi.c |
| @@ -390,6 +390,10 @@ static void test_one_syscall(struct syscall_cfg *cfg) |
| |
| sme_vl &= PR_SME_VL_LEN_MASK; |
| |
| + /* Found lowest VL */ |
| + if (sve_vq_from_vl(sme_vl) > sme_vq) |
| + break; |
| + |
| if (sme_vq != sve_vq_from_vl(sme_vl)) |
| sme_vq = sve_vq_from_vl(sme_vl); |
| |
| @@ -461,6 +465,10 @@ int sme_count_vls(void) |
| |
| vl &= PR_SME_VL_LEN_MASK; |
| |
| + /* Found lowest VL */ |
| + if (sve_vq_from_vl(vl) > vq) |
| + break; |
| + |
| if (vq != sve_vq_from_vl(vl)) |
| vq = sve_vq_from_vl(vl); |
| |
| -- |
| 2.39.2 |
| |