entry: Provide generic syscall entry functionality
authorThomas Gleixner <tglx@linutronix.de>
Wed, 22 Jul 2020 21:59:56 +0000 (23:59 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 24 Jul 2020 12:59:03 +0000 (14:59 +0200)
commit142781e108b13b2b0e8f035cfb5bfbbc8f14d887
treee11ce626a38bf77bd2ec08499f2199534e2a9a15
parent6823ecabf03031d610a6c5afe7ed4b4fd659a99f
entry: Provide generic syscall entry functionality

On syscall entry certain work needs to be done:

   - Establish state (lockdep, context tracking, tracing)
   - Conditional work (ptrace, seccomp, audit...)

This code is needlessly duplicated and  different in all
architectures.

Provide a generic version based on the x86 implementation which has all the
RCU and instrumentation bits right.

As interrupt/exception entry from user space needs parts of the same
functionality, provide a function for this as well.

syscall_enter_from_user_mode() and irqentry_enter_from_user_mode() must be
called right after the low level ASM entry. The calling code must be
non-instrumentable. After the functions returns state is correct and the
subsequent functions can be instrumented.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Kees Cook <keescook@chromium.org>
Link: https://lkml.kernel.org/r/20200722220519.513463269@linutronix.de
arch/Kconfig
include/linux/entry-common.h [new file with mode: 0644]
kernel/Makefile
kernel/entry/Makefile [new file with mode: 0644]
kernel/entry/common.c [new file with mode: 0644]