Commit 97ec597b authored by Mark Brown's avatar Mark Brown Committed by Catalin Marinas
Browse files

kselftest/arm64: Fix syscall-abi for systems without 128 bit SME



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: 43e3f855 ("kselftest/arm64: Add SME support to syscall ABI test")
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20221223-arm64-syscall-abi-sme-only-v1-1-4fabfbd62087@kernel.org


Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
parent b7bfaa76
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -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);