summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormiod <miod@openbsd.org>2005-09-15 21:09:27 +0000
committermiod <miod@openbsd.org>2005-09-15 21:09:27 +0000
commit919928f7b458be80e3b7391293faafeabc759ef8 (patch)
treecd0d678d452337a2aeaabadc19e8ae59ad162184
parentDefine PG_M_U as PG_M | PG_U, and use it where appropriate; no functional (diff)
downloadwireguard-openbsd-919928f7b458be80e3b7391293faafeabc759ef8.tar.xz
wireguard-openbsd-919928f7b458be80e3b7391293faafeabc759ef8.zip
Change child_return() to record a proper ktrace record for vfork child
processes. ok art@ uwe@ (some time ago)
-rw-r--r--sys/arch/alpha/alpha/trap.c5
-rw-r--r--sys/arch/amd64/amd64/syscall.c5
-rw-r--r--sys/arch/arm/arm/syscall.c6
-rw-r--r--sys/arch/hppa/hppa/trap.c5
-rw-r--r--sys/arch/hppa64/hppa64/trap.c5
-rw-r--r--sys/arch/i386/i386/trap.c5
-rw-r--r--sys/arch/m88k/m88k/trap.c6
-rw-r--r--sys/arch/mips64/mips64/trap.c5
-rw-r--r--sys/arch/powerpc/powerpc/trap.c5
-rw-r--r--sys/arch/solbourne/solbourne/trap.c4
-rw-r--r--sys/arch/sparc/sparc/trap.c4
-rw-r--r--sys/arch/sparc64/sparc64/trap.c4
-rw-r--r--sys/arch/vax/vax/trap.c5
13 files changed, 38 insertions, 26 deletions
diff --git a/sys/arch/alpha/alpha/trap.c b/sys/arch/alpha/alpha/trap.c
index 2b4060a6a5e..9212ffa8f47 100644
--- a/sys/arch/alpha/alpha/trap.c
+++ b/sys/arch/alpha/alpha/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.46 2005/04/28 17:19:27 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.47 2005/09/15 21:09:27 miod Exp $ */
/* $NetBSD: trap.c,v 1.52 2000/05/24 16:48:33 thorpej Exp $ */
/*-
@@ -726,7 +726,8 @@ child_return(arg)
userret(p, p->p_md.md_tf->tf_regs[FRAME_PC], 0);
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/amd64/amd64/syscall.c b/sys/arch/amd64/amd64/syscall.c
index f41166b80a0..eb49fb853d4 100644
--- a/sys/arch/amd64/amd64/syscall.c
+++ b/sys/arch/amd64/amd64/syscall.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: syscall.c,v 1.7 2004/05/13 20:20:24 sturm Exp $ */
+/* $OpenBSD: syscall.c,v 1.8 2005/09/15 21:09:29 miod Exp $ */
/* $NetBSD: syscall.c,v 1.1 2003/04/26 18:39:32 fvdl Exp $ */
/*-
@@ -206,7 +206,8 @@ child_return(void *arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET)) {
KERNEL_PROC_LOCK(p);
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
KERNEL_PROC_UNLOCK(p);
}
#endif
diff --git a/sys/arch/arm/arm/syscall.c b/sys/arch/arm/arm/syscall.c
index 5b026576e87..efb47471d56 100644
--- a/sys/arch/arm/arm/syscall.c
+++ b/sys/arch/arm/arm/syscall.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: syscall.c,v 1.4 2004/02/23 19:09:57 drahn Exp $ */
+/* $OpenBSD: syscall.c,v 1.5 2005/09/15 21:09:29 miod Exp $ */
/* $NetBSD: syscall.c,v 1.24 2003/11/14 19:03:17 scw Exp $ */
/*-
@@ -486,9 +486,11 @@ child_return(arg)
#endif
userret(p, frame->tf_pc, 0);
+
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET)) {
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
}
#endif
}
diff --git a/sys/arch/hppa/hppa/trap.c b/sys/arch/hppa/hppa/trap.c
index d110fc48045..47256b857fa 100644
--- a/sys/arch/hppa/hppa/trap.c
+++ b/sys/arch/hppa/hppa/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.88 2005/08/14 10:54:15 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.89 2005/09/15 21:09:29 miod Exp $ */
/*
* Copyright (c) 1998-2004 Michael Shalayeff
@@ -591,7 +591,8 @@ child_return(arg)
userret(p, tf->tf_iioq_head, 0);
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/hppa64/hppa64/trap.c b/sys/arch/hppa64/hppa64/trap.c
index e534ceec91d..cc47c39b967 100644
--- a/sys/arch/hppa64/hppa64/trap.c
+++ b/sys/arch/hppa64/hppa64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.3 2005/08/14 10:54:17 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.4 2005/09/15 21:09:29 miod Exp $ */
/*
* Copyright (c) 2005 Michael Shalayeff
@@ -558,7 +558,8 @@ child_return(arg)
userret(p, tf->tf_iioq[0], 0);
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/i386/i386/trap.c b/sys/arch/i386/i386/trap.c
index 960753234ab..6880a4e4290 100644
--- a/sys/arch/i386/i386/trap.c
+++ b/sys/arch/i386/i386/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.69 2005/05/29 03:20:38 deraadt Exp $ */
+/* $OpenBSD: trap.c,v 1.70 2005/09/15 21:09:29 miod Exp $ */
/* $NetBSD: trap.c,v 1.95 1996/05/05 06:50:02 mycroft Exp $ */
/*-
@@ -839,7 +839,8 @@ child_return(arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET)) {
KERNEL_PROC_LOCK(p);
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
KERNEL_PROC_UNLOCK(p);
}
#endif
diff --git a/sys/arch/m88k/m88k/trap.c b/sys/arch/m88k/m88k/trap.c
index 15428bb1d92..160b407fe60 100644
--- a/sys/arch/m88k/m88k/trap.c
+++ b/sys/arch/m88k/m88k/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.19 2005/08/06 09:53:36 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.20 2005/09/15 21:09:29 miod Exp $ */
/*
* Copyright (c) 2004, Miodrag Vallat.
* Copyright (c) 1998 Steve Murphree, Jr.
@@ -1461,9 +1461,11 @@ child_return(arg)
#endif
userret(p, tf, p->p_sticks);
+
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/mips64/mips64/trap.c b/sys/arch/mips64/mips64/trap.c
index 4b7fcc698c0..f1e9da6caac 100644
--- a/sys/arch/mips64/mips64/trap.c
+++ b/sys/arch/mips64/mips64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.22 2005/01/31 21:35:50 grange Exp $ */
+/* $OpenBSD: trap.c,v 1.23 2005/09/15 21:09:29 miod Exp $ */
/* tracked to 1.23 */
/*
@@ -837,7 +837,8 @@ child_return(arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/powerpc/powerpc/trap.c b/sys/arch/powerpc/powerpc/trap.c
index eb820cb95d5..575da48d5a7 100644
--- a/sys/arch/powerpc/powerpc/trap.c
+++ b/sys/arch/powerpc/powerpc/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.68 2005/05/30 22:12:32 drahn Exp $ */
+/* $OpenBSD: trap.c,v 1.69 2005/09/15 21:09:29 miod Exp $ */
/* $NetBSD: trap.c,v 1.3 1996/10/13 03:31:37 christos Exp $ */
/*
@@ -697,7 +697,8 @@ child_return(void *arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/solbourne/solbourne/trap.c b/sys/arch/solbourne/solbourne/trap.c
index a6cbdc71625..279c80e265a 100644
--- a/sys/arch/solbourne/solbourne/trap.c
+++ b/sys/arch/solbourne/solbourne/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.3 2005/07/18 02:43:26 fgsch Exp $ */
+/* $OpenBSD: trap.c,v 1.4 2005/09/15 21:09:29 miod Exp $ */
/* OpenBSD: trap.c,v 1.42 2004/12/06 20:12:25 miod Exp */
/*
@@ -992,6 +992,6 @@ child_return(arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
ktrsysret(p,
- (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/sparc/sparc/trap.c b/sys/arch/sparc/sparc/trap.c
index 5ad537e4c19..496e0989770 100644
--- a/sys/arch/sparc/sparc/trap.c
+++ b/sys/arch/sparc/sparc/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.44 2005/04/21 04:39:35 mickey Exp $ */
+/* $OpenBSD: trap.c,v 1.45 2005/09/15 21:09:29 miod Exp $ */
/* $NetBSD: trap.c,v 1.58 1997/09/12 08:55:01 pk Exp $ */
/*
@@ -1181,6 +1181,6 @@ child_return(arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
ktrsysret(p,
- (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/sparc64/sparc64/trap.c b/sys/arch/sparc64/sparc64/trap.c
index 25a6ebbce11..170e203c4a7 100644
--- a/sys/arch/sparc64/sparc64/trap.c
+++ b/sys/arch/sparc64/sparc64/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.35 2005/04/21 04:39:35 mickey Exp $ */
+/* $OpenBSD: trap.c,v 1.36 2005/09/15 21:09:30 miod Exp $ */
/* $NetBSD: trap.c,v 1.73 2001/08/09 01:03:01 eeh Exp $ */
/*
@@ -1457,7 +1457,7 @@ child_return(arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
ktrsysret(p,
- (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}
diff --git a/sys/arch/vax/vax/trap.c b/sys/arch/vax/vax/trap.c
index 8ac1d4fbf89..23a50c3128a 100644
--- a/sys/arch/vax/vax/trap.c
+++ b/sys/arch/vax/vax/trap.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: trap.c,v 1.30 2005/08/06 17:09:10 miod Exp $ */
+/* $OpenBSD: trap.c,v 1.31 2005/09/15 21:09:30 miod Exp $ */
/* $NetBSD: trap.c,v 1.47 1999/08/21 19:26:20 matt Exp $ */
/*
* Copyright (c) 1994 Ludd, University of Lule}, Sweden.
@@ -478,6 +478,7 @@ child_return(arg)
#ifdef KTRACE
if (KTRPOINT(p, KTR_SYSRET))
- ktrsysret(p, SYS_fork, 0, 0);
+ ktrsysret(p,
+ (p->p_flag & P_PPWAIT) ? SYS_vfork : SYS_fork, 0, 0);
#endif
}