[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20260205133049.526-1-linmag7@gmail.com>
Date: Thu, 5 Feb 2026 14:29:14 +0100
From: Magnus Lindholm <linmag7@...il.com>
To: richard.henderson@...aro.org,
mattst88@...il.com,
glaubitz@...sik.fu-berlin.de,
macro@...am.me.uk,
macro@...hat.com,
mcree@...on.net.nz,
ink@...een.parts,
linux-kernel@...r.kernel.org,
linux-alpha@...r.kernel.org,
kees@...nel.org
Cc: Magnus Lindholm <linmag7@...il.com>
Subject: [PATCH 0/1] alpha: add support for SECCOMP and SECCOMP_FILTER
This patch adds SECCOMP and SECCOMP_FILTER support to the Alpha
architecture.
The seccomp-bpf selftests exercise syscall tracing, restart, and signal
interaction paths that were previously untested on Alpha. To support
these, the ptrace/strace syscall path is updated to reliably distinguish
internal skip-dispatch from userspace invalid syscall numbers, ensuring
that syscall(-1) continues to return -ENOSYS with correct r0/a3
semantics.
Supporting seccomp also requires correct syscall restart handling when
ptrace and signal delivery are involved. The traced syscall entry path
now consistently tracks syscall state using r0, r1, and r2 while
preserving Alpha's a3-based error reporting ABI:
- r1 holds the mutable "current" syscall number
- r2 preserves the original syscall number for restart
- r0 and r19 (a3) retain their traditional roles as return value and
error indicator
This separation allows syscall restarts to be gated strictly on valid
ERESTART* return codes in the ptrace/strace paths and prevents
kernel-internal restart values from leaking into userspace.
Alpha also lacked support for PTRACE_GETREGSET(NT_PRSTATUS), causing
ptrace-based seccomp tests to fail with -EIO. Minimal GETREGSET and
SETREGSET support is added to export struct pt_regs directly.
With these changes applied, the seccomp-bpf and ptrace syscall selftests
(seccomp_bpf, extended for Alpha) pass reliably on Alpha systems.
Magnus Lindholm (1):
alpha: add support for SECCOMP and SECCOMP_FILTER
arch/alpha/Kconfig | 2 +
arch/alpha/include/asm/seccomp.h | 13 +++
arch/alpha/include/asm/syscall.h | 90 +++++++++++++++++++-
arch/alpha/include/asm/thread_info.h | 16 +++-
arch/alpha/kernel/entry.S | 123 +++++++++++++++++++++++----
arch/alpha/kernel/ptrace.c | 83 ++++++++++++++++--
6 files changed, 304 insertions(+), 23 deletions(-)
create mode 100644 arch/alpha/include/asm/seccomp.h
--
2.52.0
Powered by blists - more mailing lists