selftests/seccomp: arm: Define SYSCALL_NUM_SET macro
authorKees Cook <keescook@chromium.org>
Sat, 12 Sep 2020 11:08:09 +0000 (04:08 -0700)
committerKees Cook <keescook@chromium.org>
Sat, 19 Sep 2020 07:59:38 +0000 (00:59 -0700)
Remove the arm special-case in change_syscall().

Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/lkml/20200912110820.597135-5-keescook@chromium.org
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
tools/testing/selftests/seccomp/seccomp_bpf.c

index dc9e3e2..aa275ed 100644 (file)
@@ -1708,6 +1708,11 @@ TEST_F(TRACE_poke, getpid_runs_normally)
 #elif defined(__arm__)
 # define ARCH_REGS             struct pt_regs
 # define SYSCALL_NUM(_regs)    (_regs).ARM_r7
+# ifndef PTRACE_SET_SYSCALL
+#  define PTRACE_SET_SYSCALL   23
+# endif
+# define SYSCALL_NUM_SET(_regs, _nr)   \
+               EXPECT_EQ(0, ptrace(PTRACE_SET_SYSCALL, tracee, NULL, _nr))
 # define SYSCALL_RET(_regs)    (_regs).ARM_r0
 #elif defined(__aarch64__)
 # define ARCH_REGS             struct user_pt_regs
@@ -1847,20 +1852,11 @@ void change_syscall(struct __test_metadata *_metadata,
 #if defined(__x86_64__) || defined(__i386__) || defined(__powerpc__) || \
        defined(__s390__) || defined(__hppa__) || defined(__riscv) || \
        defined(__xtensa__) || defined(__csky__) || defined(__sh__) || \
-       defined(__mips__)
+       defined(__mips__) || defined(__arm__)
        {
                SYSCALL_NUM_SET(regs, syscall);
        }
 
-#elif defined(__arm__)
-# ifndef PTRACE_SET_SYSCALL
-#  define PTRACE_SET_SYSCALL   23
-# endif
-       {
-               ret = ptrace(PTRACE_SET_SYSCALL, tracee, NULL, syscall);
-               EXPECT_EQ(0, ret);
-       }
-
 #elif defined(__aarch64__)
 # ifndef NT_ARM_SYSTEM_CALL
 #  define NT_ARM_SYSTEM_CALL 0x404