aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Chagin <dchagin@FreeBSD.org>2023-05-14 21:23:50 +0000
committerDmitry Chagin <dchagin@FreeBSD.org>2023-06-29 08:15:57 +0000
commitcdbdd15ecd8de38f6b460330d046e8b94c010f86 (patch)
tree0247ecded1bb1155b123d3df2fda1b626285a1e4
parent4d1134a54c85ae8926eb43b7e51aee6e65b71816 (diff)
downloadsrc-cdbdd15ecd8de38f6b460330d046e8b94c010f86.tar.gz
src-cdbdd15ecd8de38f6b460330d046e8b94c010f86.zip
ktrace: Fix syscall number on a child return path from fork
Reviewed by: kib Differential Revision: https://reviews.freebsd.org/D40078 MFC after 1 week (cherry picked from commit ae6ac58745b58c0a3424b3714be1205821d93c51)
-rw-r--r--sys/kern/kern_fork.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/kern/kern_fork.c b/sys/kern/kern_fork.c
index 068dfdb097d3..eebe2e2259f2 100644
--- a/sys/kern/kern_fork.c
+++ b/sys/kern/kern_fork.c
@@ -1118,6 +1118,9 @@ fork_exit(void (*callout)(void *, struct trapframe *), void *arg,
void
fork_return(struct thread *td, struct trapframe *frame)
{
+#ifdef KTRACE
+ struct syscall_args *sa;
+#endif
struct proc *p;
p = td->td_proc;
@@ -1160,7 +1163,9 @@ fork_return(struct thread *td, struct trapframe *frame)
userret(td, frame);
#ifdef KTRACE
- if (KTRPOINT(td, KTR_SYSRET))
- ktrsysret(SYS_fork, 0, 0);
+ if (KTRPOINT(td, KTR_SYSRET)) {
+ sa = &td->td_sa;
+ ktrsysret(sa->code, 0, 0);
+ }
#endif
}