Dmitry V. Levin
cc6622730b
syscall.h: introduce syscall_set_nr()
...
Similar to syscall_set_arguments() that complements
syscall_get_arguments(), introduce syscall_set_nr() that complements
syscall_get_nr().
syscall_set_nr() is going to be needed along with syscall_set_arguments()
on all HAVE_ARCH_TRACEHOOK architectures to implement
PTRACE_SET_SYSCALL_INFO API.
Link: https://lkml.kernel.org/r/20250303112020.GD24170@strace.io
Signed-off-by: Dmitry V. Levin <ldv@strace.io >
Tested-by: Charlie Jenkins <charlie@rivosinc.com >
Reviewed-by: Charlie Jenkins <charlie@rivosinc.com >
Acked-by: Helge Deller <deller@gmx.de > # parisc
Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk > # mips
Cc: Alexander Gordeev <agordeev@linux.ibm.com >
Cc: Alexey Gladkov (Intel) <legion@kernel.org >
Cc: Andreas Larsson <andreas@gaisler.com >
Cc: anton ivanov <anton.ivanov@cambridgegreys.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Borislav Betkov <bp@alien8.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Christian Borntraeger <borntraeger@linux.ibm.com >
Cc: Christian Zankel <chris@zankel.net >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: Davide Berardi <berardi.dav@gmail.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Eugene Syromiatnikov <esyr@redhat.com >
Cc: Eugene Syromyatnikov <evgsyr@gmail.com >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Johannes Berg <johannes@sipsolutions.net >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Madhavan Srinivasan <maddy@linux.ibm.com >
Cc: Max Filippov <jcmvbkbc@gmail.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Mike Frysinger <vapier@gentoo.org >
Cc: Naveen N Rao <naveen@kernel.org >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Renzo Davoi <renzo@cs.unibo.it >
Cc: Richard Weinberger <richard@nod.at >
Cc: Rich Felker <dalias@libc.org >
Cc: Russel King <linux@armlinux.org.uk >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi >
Cc: Sven Schnelle <svens@linux.ibm.com >
Cc: Thomas Gleinxer <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-05-11 17:48:15 -07:00
Dmitry V. Levin
17fc7b8f9b
syscall.h: add syscall_set_arguments()
...
This function is going to be needed on all HAVE_ARCH_TRACEHOOK
architectures to implement PTRACE_SET_SYSCALL_INFO API.
This partially reverts commit 7962c2eddb ("arch: remove unused function
syscall_set_arguments()") by reusing some of old syscall_set_arguments()
implementations.
[nathan@kernel.org: fix compile time fortify checks]
Link: https://lkml.kernel.org/r/20250408213131.GA2872426@ax162
Link: https://lkml.kernel.org/r/20250303112009.GC24170@strace.io
Signed-off-by: Dmitry V. Levin <ldv@strace.io >
Signed-off-by: Nathan Chancellor <nathan@kernel.org >
Tested-by: Charlie Jenkins <charlie@rivosinc.com >
Reviewed-by: Charlie Jenkins <charlie@rivosinc.com >
Acked-by: Helge Deller <deller@gmx.de > # parisc
Reviewed-by: Maciej W. Rozycki <macro@orcam.me.uk > [mips]
Cc: Alexander Gordeev <agordeev@linux.ibm.com >
Cc: Alexey Gladkov (Intel) <legion@kernel.org >
Cc: Andreas Larsson <andreas@gaisler.com >
Cc: anton ivanov <anton.ivanov@cambridgegreys.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Borislav Betkov <bp@alien8.de >
Cc: Brian Cain <bcain@quicinc.com >
Cc: Christian Borntraeger <borntraeger@linux.ibm.com >
Cc: Christian Zankel <chris@zankel.net >
Cc: Christophe Leroy <christophe.leroy@csgroup.eu >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: Davide Berardi <berardi.dav@gmail.com >
Cc: David S. Miller <davem@davemloft.net >
Cc: Dinh Nguyen <dinguyen@kernel.org >
Cc: Eugene Syromiatnikov <esyr@redhat.com >
Cc: Eugene Syromyatnikov <evgsyr@gmail.com >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Guo Ren <guoren@kernel.org >
Cc: Heiko Carstens <hca@linux.ibm.com >
Cc: "H. Peter Anvin" <hpa@zytor.com >
Cc: Huacai Chen <chenhuacai@kernel.org >
Cc: Ingo Molnar <mingo@redhat.com >
Cc: Johannes Berg <johannes@sipsolutions.net >
Cc: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de >
Cc: Jonas Bonn <jonas@southpole.se >
Cc: Madhavan Srinivasan <maddy@linux.ibm.com >
Cc: Max Filippov <jcmvbkbc@gmail.com >
Cc: Michael Ellerman <mpe@ellerman.id.au >
Cc: Michal Simek <monstr@monstr.eu >
Cc: Mike Frysinger <vapier@gentoo.org >
Cc: Naveen N Rao <naveen@kernel.org >
Cc: Nicholas Piggin <npiggin@gmail.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Renzo Davoi <renzo@cs.unibo.it >
Cc: Richard Weinberger <richard@nod.at >
Cc: Rich Felker <dalias@libc.org >
Cc: Russel King <linux@armlinux.org.uk >
Cc: Shuah Khan <shuah@kernel.org >
Cc: Stafford Horne <shorne@gmail.com >
Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi >
Cc: Sven Schnelle <svens@linux.ibm.com >
Cc: Thomas Gleinxer <tglx@linutronix.de >
Cc: Vasily Gorbik <gor@linux.ibm.com >
Cc: Vineet Gupta <vgupta@kernel.org >
Cc: WANG Xuerui <kernel@xen0n.name >
Cc: Will Deacon <will@kernel.org >
Cc: Yoshinori Sato <ysato@users.sourceforge.jp >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
2025-05-11 17:48:15 -07:00
Sergey Matyukevich
fb0b54909b
ARC: implement syscall tracepoints
...
Implement all the bits required to support HAVE_SYSCALL_TRACEPOINTS
according to Documentation/trace/ftrace-design.rst.
Signed-off-by: Sergey Matyukevich <sergey.matyukevich@synopsys.com >
Signed-off-by: Vineet Gupta <vgupta@kernel.org >
2022-04-25 13:09:47 -07:00
Thomas Gleixner
d2912cb15b
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500
...
Based on 2 normalized pattern(s):
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license version 2 as
published by the free software foundation
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license version 2 as
published by the free software foundation #
extracted by the scancode license scanner the SPDX license identifier
GPL-2.0-only
has been chosen to replace the boilerplate/reference in 4122 file(s).
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Enrico Weigelt <info@metux.net >
Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org >
Reviewed-by: Allison Randal <allison@lohutok.net >
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-06-19 17:09:55 +02:00
Linus Torvalds
02aff8db64
Merge tag 'audit-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit
...
Pull audit updates from Paul Moore:
"We've got a reasonably broad set of audit patches for the v5.2 merge
window, the highlights are below:
- The biggest change, and the source of all the arch/* changes, is
the patchset from Dmitry to help enable some of the work he is
doing around PTRACE_GET_SYSCALL_INFO.
To be honest, including this in the audit tree is a bit of a
stretch, but it does help move audit a little further along towards
proper syscall auditing for all arches, and everyone else seemed to
agree that audit was a "good" spot for this to land (or maybe they
just didn't want to merge it? dunno.).
- We can now audit time/NTP adjustments.
- We continue the work to connect associated audit records into a
single event"
* tag 'audit-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit: (21 commits)
audit: fix a memory leak bug
ntp: Audit NTP parameters adjustment
timekeeping: Audit clock adjustments
audit: purge unnecessary list_empty calls
audit: link integrity evm_write_xattrs record to syscall event
syscall_get_arch: add "struct task_struct *" argument
unicore32: define syscall_get_arch()
Move EM_UNICORE to uapi/linux/elf-em.h
nios2: define syscall_get_arch()
nds32: define syscall_get_arch()
Move EM_NDS32 to uapi/linux/elf-em.h
m68k: define syscall_get_arch()
hexagon: define syscall_get_arch()
Move EM_HEXAGON to uapi/linux/elf-em.h
h8300: define syscall_get_arch()
c6x: define syscall_get_arch()
arc: define syscall_get_arch()
Move EM_ARCOMPACT and EM_ARCV2 to uapi/linux/elf-em.h
audit: Make audit_log_cap and audit_copy_inode static
audit: connect LOGIN record to its syscall record
...
2019-05-07 19:06:04 -07:00
Steven Rostedt (Red Hat)
b35f549df1
syscalls: Remove start and number from syscall_get_arguments() args
...
At Linux Plumbers, Andy Lutomirski approached me and pointed out that the
function call syscall_get_arguments() implemented in x86 was horribly
written and not optimized for the standard case of passing in 0 and 6 for
the starting index and the number of system calls to get. When looking at
all the users of this function, I discovered that all instances pass in only
0 and 6 for these arguments. Instead of having this function handle
different cases that are never used, simply rewrite it to return the first 6
arguments of a system call.
This should help out the performance of tracing system calls by ptrace,
ftrace and perf.
Link: http://lkml.kernel.org/r/20161107213233.754809394@goodmis.org
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: Andy Lutomirski <luto@amacapital.net >
Cc: Dominik Brodowski <linux@dominikbrodowski.net >
Cc: Dave Martin <dave.martin@arm.com >
Cc: "Dmitry V. Levin" <ldv@altlinux.org >
Cc: x86@kernel.org
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-c6x-dev@linux-c6x.org
Cc: uclinux-h8-devel@lists.sourceforge.jp
Cc: linux-hexagon@vger.kernel.org
Cc: linux-ia64@vger.kernel.org
Cc: linux-mips@vger.kernel.org
Cc: nios2-dev@lists.rocketboards.org
Cc: openrisc@lists.librecores.org
Cc: linux-parisc@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-riscv@lists.infradead.org
Cc: linux-s390@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-um@lists.infradead.org
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-arch@vger.kernel.org
Acked-by: Paul Burton <paul.burton@mips.com > # MIPS parts
Acked-by: Max Filippov <jcmvbkbc@gmail.com > # For xtensa changes
Acked-by: Will Deacon <will.deacon@arm.com > # For the arm64 bits
Reviewed-by: Thomas Gleixner <tglx@linutronix.de > # for x86
Reviewed-by: Dmitry V. Levin <ldv@altlinux.org >
Reported-by: Andy Lutomirski <luto@amacapital.net >
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
2019-04-05 09:26:43 -04:00
Dmitry V. Levin
16add41164
syscall_get_arch: add "struct task_struct *" argument
...
This argument is required to extend the generic ptrace API with
PTRACE_GET_SYSCALL_INFO request: syscall_get_arch() is going
to be called from ptrace_request() along with syscall_get_nr(),
syscall_get_arguments(), syscall_get_error(), and
syscall_get_return_value() functions with a tracee as their argument.
The primary intent is that the triple (audit_arch, syscall_nr, arg1..arg6)
should describe what system call is being called and what its arguments
are.
Reverts: 5e937a9ae9 ("syscall_get_arch: remove useless function arguments")
Reverts: 1002d94d30 ("syscall.h: fix doc text for syscall_get_arch()")
Reviewed-by: Andy Lutomirski <luto@kernel.org > # for x86
Reviewed-by: Palmer Dabbelt <palmer@sifive.com >
Acked-by: Paul Moore <paul@paul-moore.com >
Acked-by: Paul Burton <paul.burton@mips.com > # MIPS parts
Acked-by: Michael Ellerman <mpe@ellerman.id.au > (powerpc)
Acked-by: Kees Cook <keescook@chromium.org > # seccomp parts
Acked-by: Mark Salter <msalter@redhat.com > # for the c6x bit
Cc: Elvira Khabirova <lineprinter@altlinux.org >
Cc: Eugene Syromyatnikov <esyr@redhat.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: x86@kernel.org
Cc: linux-alpha@vger.kernel.org
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-c6x-dev@linux-c6x.org
Cc: uclinux-h8-devel@lists.sourceforge.jp
Cc: linux-hexagon@vger.kernel.org
Cc: linux-ia64@vger.kernel.org
Cc: linux-m68k@lists.linux-m68k.org
Cc: linux-mips@vger.kernel.org
Cc: nios2-dev@lists.rocketboards.org
Cc: openrisc@lists.librecores.org
Cc: linux-parisc@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: linux-riscv@lists.infradead.org
Cc: linux-s390@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: sparclinux@vger.kernel.org
Cc: linux-um@lists.infradead.org
Cc: linux-xtensa@linux-xtensa.org
Cc: linux-arch@vger.kernel.org
Cc: linux-audit@redhat.com
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org >
Signed-off-by: Paul Moore <paul@paul-moore.com >
2019-03-20 21:12:36 -04:00
Dmitry V. Levin
67f2a8a293
arc: define syscall_get_arch()
...
syscall_get_arch() is required to be implemented on all architectures
in addition to already implemented syscall_get_nr(),
syscall_get_arguments(), syscall_get_error(), and
syscall_get_return_value() functions in order to extend the generic
ptrace API with PTRACE_GET_SYSCALL_INFO request.
Acked-by: Vineet Gupta <vgupta@synopsys.com >
Acked-by: Paul Moore <paul@paul-moore.com >
Cc: Elvira Khabirova <lineprinter@altlinux.org >
Cc: Eugene Syromyatnikov <esyr@redhat.com >
Cc: Alexey Brodkin <alexey.brodkin@synopsys.com >
Cc: Oleg Nesterov <oleg@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: linux-snps-arc@lists.infradead.org
Cc: linux-audit@redhat.com
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org >
Signed-off-by: Paul Moore <paul@paul-moore.com >
2019-03-20 21:08:08 -04:00
Vineet Gupta
352c1d95e3
ARC: stop using pt_regs->orig_r8
...
Historically, pt_regs have had orig_r8, an overloaded container for
(1) backup copy of r8 (syscall number Trap Exceptions)
(2) additional system state: (syscall/Exception/Interrupt)
There is no point in keeping (1) since syscall number is never clobbered
in-place, in pt_regs, unlike r0 which duals as first syscall arg as well
as syscall return value and in case of syscall restart, the orig arg0
needs restoring (from orig_r0) after having been updated in-place with
syscall ret value.
This further paves way to convert (2) to contain ECR itself (rather than
current madeup values)
Signed-off-by: Vineet Gupta <vgupta@synopsys.com >
2013-06-22 19:23:26 +05:30
Vineet Gupta
4adeefe161
ARC: Syscall support (no-legacy-syscall ABI)
...
This includes support for generic clone/for/vfork/execve
Signed-off-by: Vineet Gupta <vgupta@synopsys.com >
Cc: Arnd Bergmann <arnd@arndb.de >
Cc: Al Viro <viro@ZenIV.linux.org.uk >
Acked-by: Arnd Bergmann <arnd@arndb.de >
2013-02-11 20:00:38 +05:30