]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
kselftest/arm64: Fix syscall-abi for systems without 128 bit SME
authorMark Brown <broonie@kernel.org>
Tue, 27 Dec 2022 13:06:35 +0000 (13:06 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 10 Mar 2023 08:32:53 +0000 (09:32 +0100)
[ 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

index dd7ebe536d05faec4cc7053ee10c9e39bf31e094..ffe719b50c2152791d5aa1f809ceb86efb955ec7 100644 (file)
@@ -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);