summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/amd64/linux32/linux32_machdep.c1
-rw-r--r--sys/i386/linux/linux_machdep.c1
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c
index 7b0b124..541bf97 100644
--- a/sys/amd64/linux32/linux32_machdep.c
+++ b/sys/amd64/linux32/linux32_machdep.c
@@ -495,6 +495,7 @@ linux_vfork(struct thread *td, struct linux_vfork_args *args)
return (error);
/* wait for the children to exit, ie. emulate vfork */
PROC_LOCK(p2);
+ p2->p_flag |= P_PPWAIT;
while (p2->p_flag & P_PPWAIT)
msleep(td->td_proc, &p2->p_mtx, PWAIT, "ppwait", 0);
PROC_UNLOCK(p2);
diff --git a/sys/i386/linux/linux_machdep.c b/sys/i386/linux/linux_machdep.c
index 849170b..be8fce5 100644
--- a/sys/i386/linux/linux_machdep.c
+++ b/sys/i386/linux/linux_machdep.c
@@ -340,6 +340,7 @@ linux_vfork(struct thread *td, struct linux_vfork_args *args)
return (error);
/* wait for the children to exit, ie. emulate vfork */
PROC_LOCK(p2);
+ p2->p_flag |= P_PPWAIT;
while (p2->p_flag & P_PPWAIT)
msleep(td->td_proc, &p2->p_mtx, PWAIT, "ppwait", 0);
PROC_UNLOCK(p2);
OpenPOWER on IntegriCloud