Re: [patch 13/18] entry: Make trace_syscall_enter() return type bool
Oleg Nesterov <[email protected]> Fri, 10 Jul 2026 13:40:43 +0200
| Newsgroups | org.kernel.vger.linux-alpha,dev.linux.lists.loongarch,org.infradead.lists.linux-riscv,org.infradead.lists.linux-snps-arc,org.infradead.lists.linux-um,org.kernel.vger.linux-arch,org.kernel.vger.linux-csky,org.kernel.vger.linux-doc,org.kernel.vger.linux-hexagon,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-mips,org.kernel.vger.linux-openrisc,org.kernel.vger.linux-parisc,org.kernel.vger.linux-s390,org.kernel.vger.linux-sh,org.kernel.vger.sparclinux,org.ozlabs.lists.linuxppc-dev |
|---|---|
| Message-ID | <[email protected]> |
On 07/10, Michal Suchánek wrote: > > On Wed, Jul 08, 2026 at 10:34:38PM +0200, Thomas Gleixner wrote: > > > > 1) The set in stone rule is that if the entry code returns -1L as the > > syscall number then the architecture code has to skip the syscall > > invocation _and_ is not supposed to change the return value. > > Which stone? > > Pics or it did not happen. > > > > > 2) There is no guarantee and never has been that any of the involved > > mechanisms (ptrace, seccomp, tracing) will change the return value > > when it sets the syscall number to -1L. > > For ptrace to correctly emulate a syscall it needs to set the syscall nr > to an invalid value on entry, and the desired result if the syscall on > exit AFAICT. I can only say that ptrace users do want to skip the syscall and set the return value on entry. See [PATCH v5 1/2] ptrace: add PTRACE_SET_SYSCALL_INFO syscall skipping support https://lore.kernel.org/all/[email protected]/ The changelog explains that currently this doesn't work because among the arches which define HAVE_ARCH_TRACEHOOK (at least) arch/mips is broken in this regard. Oleg.