summaryrefslogtreecommitdiff
path: root/kernel/ptrace.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2023-04-25 11:05:04 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2023-04-25 11:05:04 -0700
commit15bbeec0fe9f1e910cb6a173005a02b6b4582f3c (patch)
tree92f1f3c2fc8b23b53ffbd351fd884145690779be /kernel/ptrace.c
parent29e95a4b2686b2cfb5564b3fb31371d5f71c6b66 (diff)
parent8c8fa605f7b8b6df3e6fb280a74cff8d7374a7b7 (diff)
downloadlinux-15bbeec0fe9f1e910cb6a173005a02b6b4582f3c.tar.gz
linux-15bbeec0fe9f1e910cb6a173005a02b6b4582f3c.tar.bz2
linux-15bbeec0fe9f1e910cb6a173005a02b6b4582f3c.zip
Merge tag 'core-entry-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull core entry/ptrace update from Thomas Gleixner: "Provide a ptrace set/get interface for syscall user dispatch. The main purpose is to enable checkpoint/restore (CRIU) to handle processes which utilize syscall user dispatch correctly" * tag 'core-entry-2023-04-24' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: selftest, ptrace: Add selftest for syscall user dispatch config api ptrace: Provide set/get interface for syscall user dispatch syscall_user_dispatch: Untag selector address before access_ok() syscall_user_dispatch: Split up set_syscall_user_dispatch()
Diffstat (limited to 'kernel/ptrace.c')
-rw-r--r--kernel/ptrace.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 0786450074c1..443057bee87c 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -32,6 +32,7 @@
#include <linux/compat.h>
#include <linux/sched/signal.h>
#include <linux/minmax.h>
+#include <linux/syscall_user_dispatch.h>
#include <asm/syscall.h> /* for syscall_get_* */
@@ -1259,6 +1260,14 @@ int ptrace_request(struct task_struct *child, long request,
break;
#endif
+ case PTRACE_SET_SYSCALL_USER_DISPATCH_CONFIG:
+ ret = syscall_user_dispatch_set_config(child, addr, datavp);
+ break;
+
+ case PTRACE_GET_SYSCALL_USER_DISPATCH_CONFIG:
+ ret = syscall_user_dispatch_get_config(child, addr, datavp);
+ break;
+
default:
break;
}