diff options
-rw-r--r-- | sys/amd64/linux32/linux32_machdep.c | 1 | ||||
-rw-r--r-- | sys/i386/linux/linux_machdep.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/sys/amd64/linux32/linux32_machdep.c b/sys/amd64/linux32/linux32_machdep.c index 7a164863..4d03d77 100644 --- a/sys/amd64/linux32/linux32_machdep.c +++ b/sys/amd64/linux32/linux32_machdep.c @@ -497,6 +497,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 8ff50e1..5b1f6b1 100644 --- a/sys/i386/linux/linux_machdep.c +++ b/sys/i386/linux/linux_machdep.c @@ -341,6 +341,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); |