Re: [PATCH 11/11] selftests/seccomp: Add powerpc support
From: Kees Cook <hidden>
Date: 2015-07-27 19:00:27
Also in:
lkml
On Thu, Jul 23, 2015 at 3:21 AM, Michael Ellerman [off-list ref] wrote:
Wire up the syscall number and regs so the tests work on powerpc.
This patch begs the question: this passes everything? (I was reminded about syscall_restart while reading the patches. If everything passes, it looks like powerpc exposes syscall_restart? Seems like ARM remains the odd-arch-out on this. :P) Thanks! -Kees
quoted hunk ↗ jump to hunk
Acked-by: Kees Cook <redacted> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> --- tools/testing/selftests/seccomp/seccomp_bpf.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-)diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c index 2303a8dff9a2..a004b4cce99e 100644 --- a/tools/testing/selftests/seccomp/seccomp_bpf.c +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c@@ -14,6 +14,7 @@ #include <linux/filter.h> #include <sys/prctl.h> #include <sys/ptrace.h> +#include <sys/types.h> #include <sys/user.h> #include <linux/prctl.h> #include <linux/ptrace.h>@@ -1205,6 +1206,10 @@ TEST_F(TRACE_poke, getpid_runs_normally) # define ARCH_REGS struct user_pt_regs # define SYSCALL_NUM regs[8] # define SYSCALL_RET regs[0] +#elif defined(__powerpc__) +# define ARCH_REGS struct pt_regs +# define SYSCALL_NUM gpr[0] +# define SYSCALL_RET gpr[3] #else # error "Do not know how to find your architecture's registers and syscalls" #endif@@ -1238,7 +1243,7 @@ void change_syscall(struct __test_metadata *_metadata, ret = ptrace(PTRACE_GETREGSET, tracee, NT_PRSTATUS, &iov); EXPECT_EQ(0, ret); -#if defined(__x86_64__) || defined(__i386__) || defined(__aarch64__) +#if defined(__x86_64__) || defined(__i386__) || defined(__aarch64__) || defined(__powerpc__) { regs.SYSCALL_NUM = syscall; }@@ -1402,6 +1407,8 @@ TEST_F(TRACE_syscall, syscall_dropped) # define __NR_seccomp 383 # elif defined(__aarch64__) # define __NR_seccomp 277 +# elif defined(__powerpc__) +# define __NR_seccomp 358 # else # warning "seccomp syscall number unknown for this architecture" # define __NR_seccomp 0xffff --2.1.0
-- Kees Cook Chrome OS Security