kselftest/arm64: Validate vector lengths are set in sve-probe-vls
authorMark Brown <broonie@kernel.org>
Tue, 3 Aug 2021 14:04:48 +0000 (15:04 +0100)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 3 Aug 2021 15:20:05 +0000 (16:20 +0100)
Currently sve-probe-vls does not verify that the vector lengths reported
by the prctl() interface are actually what is reported by the architecture,
use the rdvl_sve() helper to validate this.

Signed-off-by: Mark Brown <broonie@kernel.org>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Link: https://lore.kernel.org/r/20210803140450.46624-3-broonie@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
tools/testing/selftests/arm64/fp/Makefile
tools/testing/selftests/arm64/fp/sve-probe-vls.c

index ed62e70..fa3a016 100644 (file)
@@ -13,7 +13,7 @@ fpsimd-test: fpsimd-test.o
        $(CC) -nostdlib $^ -o $@
 rdvl-sve: rdvl-sve.o rdvl.o
 sve-ptrace: sve-ptrace.o sve-ptrace-asm.o
-sve-probe-vls: sve-probe-vls.o
+sve-probe-vls: sve-probe-vls.o rdvl.o
 sve-test: sve-test.o
        $(CC) -nostdlib $^ -o $@
 vlset: vlset.o
index 76e1385..a24eca7 100644 (file)
@@ -13,6 +13,7 @@
 #include <asm/sigcontext.h>
 
 #include "../../kselftest.h"
+#include "rdvl.h"
 
 int main(int argc, char **argv)
 {
@@ -38,6 +39,10 @@ int main(int argc, char **argv)
 
                vl &= PR_SVE_VL_LEN_MASK;
 
+               if (rdvl_sve() != vl)
+                       ksft_exit_fail_msg("PR_SVE_SET_VL reports %d, RDVL %d\n",
+                                          vl, rdvl_sve());
+
                if (!sve_vl_valid(vl))
                        ksft_exit_fail_msg("VL %d invalid\n", vl);
                vq = sve_vq_from_vl(vl);