git: f4fd475d457d - stable/13 - linux: Improve debug for PTRACE_GETEVENTMSG

From: Edward Tomasz Napierala <trasz_at_FreeBSD.org>
Date: Mon, 21 Feb 2022 13:49:01 UTC
The branch stable/13 has been updated by trasz:

URL: https://cgit.FreeBSD.org/src/commit/?id=f4fd475d457da5e09117c7caba3c15baca2458e4

commit f4fd475d457da5e09117c7caba3c15baca2458e4
Author:     Edward Tomasz Napierala <trasz@FreeBSD.org>
AuthorDate: 2021-10-23 18:53:12 +0000
Commit:     Edward Tomasz Napierala <trasz@FreeBSD.org>
CommitDate: 2022-02-21 13:36:01 +0000

    linux: Improve debug for PTRACE_GETEVENTMSG
    
    No functional changes.
    
    Sponsored By:   EPSRC
    
    (cherry picked from commit 2ec26ae402fc2589cb97bb5aa713b6d0ba080c17)
---
 sys/amd64/linux/linux_ptrace.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/sys/amd64/linux/linux_ptrace.c b/sys/amd64/linux/linux_ptrace.c
index 7abb9c5ee933..8c007871c190 100644
--- a/sys/amd64/linux/linux_ptrace.c
+++ b/sys/amd64/linux/linux_ptrace.c
@@ -67,6 +67,7 @@ __FBSDID("$FreeBSD$");
 #define	LINUX_PTRACE_DETACH		17
 #define	LINUX_PTRACE_SYSCALL		24
 #define	LINUX_PTRACE_SETOPTIONS		0x4200
+#define	LINUX_PTRACE_GETEVENTMSG	0x4201
 #define	LINUX_PTRACE_GETSIGINFO		0x4202
 #define	LINUX_PTRACE_GETREGSET		0x4204
 #define	LINUX_PTRACE_SEIZE		0x4206
@@ -427,6 +428,14 @@ linux_ptrace_setoptions(struct thread *td, pid_t pid, l_ulong data)
 	return (kern_ptrace(td, PT_SET_EVENT_MASK, pid, &mask, sizeof(mask)));
 }
 
+static int
+linux_ptrace_geteventmsg(struct thread *td, pid_t pid, l_ulong data)
+{
+
+	linux_msg(td, "PTRACE_GETEVENTMSG not implemented; returning EINVAL");
+	return (EINVAL);
+}
+
 static int
 linux_ptrace_getsiginfo(struct thread *td, pid_t pid, l_ulong data)
 {
@@ -772,6 +781,9 @@ linux_ptrace(struct thread *td, struct linux_ptrace_args *uap)
 	case LINUX_PTRACE_SETOPTIONS:
 		error = linux_ptrace_setoptions(td, pid, uap->data);
 		break;
+	case LINUX_PTRACE_GETEVENTMSG:
+		error = linux_ptrace_geteventmsg(td, pid, uap->data);
+		break;
 	case LINUX_PTRACE_GETSIGINFO:
 		error = linux_ptrace_getsiginfo(td, pid, uap->data);
 		break;