linux-stable/kernel/entry
Gabriel Krisman Bertazi 11894468e3 entry: Support Syscall User Dispatch on common syscall entry
Syscall User Dispatch (SUD) must take precedence over seccomp and
ptrace, since the use case is emulation (it can be invoked with a
different ABI) such that seccomp filtering by syscall number doesn't
make sense in the first place.  In addition, either the syscall is
dispatched back to userspace, in which case there is no resource for to
trace, or the syscall will be executed, and seccomp/ptrace will execute
next.

Since SUD runs before tracepoints, it needs to be a SYSCALL_WORK_EXIT as
well, just to prevent a trace exit event when dispatch was triggered.
For that, the on_syscall_dispatch() examines context to skip the
tracepoint, audit and other work.

[ tglx: Add a comment on the exit side ]

Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Andy Lutomirski <luto@kernel.org>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20201127193238.821364-5-krisman@collabora.com
2020-12-02 15:07:56 +01:00
..
common.c entry: Support Syscall User Dispatch on common syscall entry 2020-12-02 15:07:56 +01:00
common.h kernel: Implement selective syscall userspace redirection 2020-12-02 15:07:56 +01:00
kvm.c Merge branch 'core/urgent' into core/entry 2020-11-04 18:14:52 +01:00
Makefile kernel: Implement selective syscall userspace redirection 2020-12-02 15:07:56 +01:00
syscall_user_dispatch.c kernel: Implement selective syscall userspace redirection 2020-12-02 15:07:56 +01:00