diff options
author | Michael Ellerman <mpe@ellerman.id.au> | 2020-08-03 05:07:19 +0300 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2020-08-03 15:12:41 +0300 |
commit | 872d11bca9c29ed19595c993b9f552ffe9b63dcb (patch) | |
tree | 101f33625913e951cad50b2ea693162014d6efb0 /tools/testing/selftests/powerpc/ptrace | |
parent | 8d8a629d00a5283874b81b594f31f8d436dc57d8 (diff) | |
download | linux-872d11bca9c29ed19595c993b9f552ffe9b63dcb.tar.xz |
selftests/powerpc: Skip vmx/vsx/tar/etc tests on older CPUs
Some of our tests use VSX or newer VMX instructions, so need to be
skipped on older CPUs to avoid SIGILL'ing.
Similarly TAR was added in v2.07, and the PMU event used in the stcx
fail test only works on Power8 or later.
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200803020719.96114-1-mpe@ellerman.id.au
Diffstat (limited to 'tools/testing/selftests/powerpc/ptrace')
-rw-r--r-- | tools/testing/selftests/powerpc/ptrace/ptrace-tar.c | 3 | ||||
-rw-r--r-- | tools/testing/selftests/powerpc/ptrace/ptrace-vsx.c | 2 |
2 files changed, 5 insertions, 0 deletions
diff --git a/tools/testing/selftests/powerpc/ptrace/ptrace-tar.c b/tools/testing/selftests/powerpc/ptrace/ptrace-tar.c index 58cb1a860cc9..4436ca9d3caf 100644 --- a/tools/testing/selftests/powerpc/ptrace/ptrace-tar.c +++ b/tools/testing/selftests/powerpc/ptrace/ptrace-tar.c @@ -78,6 +78,9 @@ int ptrace_tar(void) pid_t pid; int ret, status; + // TAR was added in v2.07 + SKIP_IF(!have_hwcap2(PPC_FEATURE2_ARCH_2_07)); + shm_id = shmget(IPC_PRIVATE, sizeof(int) * 3, 0777|IPC_CREAT); pid = fork(); if (pid < 0) { diff --git a/tools/testing/selftests/powerpc/ptrace/ptrace-vsx.c b/tools/testing/selftests/powerpc/ptrace/ptrace-vsx.c index c4fe0e893306..cb9875f764ca 100644 --- a/tools/testing/selftests/powerpc/ptrace/ptrace-vsx.c +++ b/tools/testing/selftests/powerpc/ptrace/ptrace-vsx.c @@ -61,6 +61,8 @@ int ptrace_vsx(void) pid_t pid; int ret, status, i; + SKIP_IF(!have_hwcap(PPC_FEATURE_HAS_VSX)); + shm_id = shmget(IPC_PRIVATE, sizeof(int) * 2, 0777|IPC_CREAT); for (i = 0; i < VEC_MAX; i++) |