summaryrefslogtreecommitdiff
path: root/include/linux/entry-common.h
diff options
context:
space:
mode:
authorGregory Price <gourry@gourry.net>2026-07-06 10:00:18 -0400
committerThomas Gleixner <tglx@kernel.org>2026-07-08 10:22:00 +0200
commitee935e8dc757614006ac29a7d98a15882cdcaeb2 (patch)
tree206ddf08c8b28e1bac9fe9dc0d634dbfe7ec515d /include/linux/entry-common.h
parent8cdeaa50eae8dad34885515f62559ee83e7e8dda (diff)
downloadlinux-next-ee935e8dc757614006ac29a7d98a15882cdcaeb2.tar.gz
linux-next-ee935e8dc757614006ac29a7d98a15882cdcaeb2.zip
syscall_user_dispatch: Make it configurable in Kconfig
Syscall User Dispatch is presently built under CONFIG_GENERIC_SYSCALL and cannot be disabled independently. Add CONFIG_SYSCALL_USER_DISPATCH to make it an optional feature. Signed-off-by: Gregory Price <gourry@gourry.net> Signed-off-by: Thomas Gleixner <tglx@kernel.org> Link: https://patch.msgid.link/20260706140020.873735-2-gourry@gourry.net
Diffstat (limited to 'include/linux/entry-common.h')
-rw-r--r--include/linux/entry-common.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h
index 416a3352261f..9336516430a1 100644
--- a/include/linux/entry-common.h
+++ b/include/linux/entry-common.h
@@ -9,6 +9,7 @@
#include <linux/resume_user_mode.h>
#include <linux/seccomp.h>
#include <linux/sched.h>
+#include <linux/syscall_user_dispatch.h>
#include <asm/entry-common.h>
#include <asm/syscall.h>
@@ -55,7 +56,6 @@ static __always_inline int arch_ptrace_report_syscall_entry(struct pt_regs *regs
}
#endif
-bool syscall_user_dispatch(struct pt_regs *regs);
long trace_syscall_enter(struct pt_regs *regs, long syscall);
void trace_syscall_exit(struct pt_regs *regs, long ret);
@@ -232,10 +232,8 @@ static __always_inline void syscall_exit_work(struct pt_regs *regs, unsigned lon
* of these syscalls is unknown.
*/
if (work & SYSCALL_WORK_SYSCALL_USER_DISPATCH) {
- if (unlikely(current->syscall_dispatch.on_dispatch)) {
- current->syscall_dispatch.on_dispatch = false;
+ if (syscall_user_dispatch_clear_on_dispatch())
return;
- }
}
audit_syscall_exit(regs);