diff options
author | davidxu <davidxu@FreeBSD.org> | 2004-05-21 14:50:23 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2004-05-21 14:50:23 +0000 |
commit | e7578c3795e2978e62ac24580afb7f9486ddf33b (patch) | |
tree | e39896ecc10bd3422a18751741389addfe29602b /sys/kern/kern_exec.c | |
parent | eda6d52241e471f4183ce733b1e3b874867e0296 (diff) | |
download | FreeBSD-src-e7578c3795e2978e62ac24580afb7f9486ddf33b.zip FreeBSD-src-e7578c3795e2978e62ac24580afb7f9486ddf33b.tar.gz |
Clear KSE thread flags after KSE thread mode is ended. The side effect
of not clearing the flags for execv() syscall will result that a new
program runs in KSE thread mode without enabling it.
Submitted by: tjr
Modified by: davidxu
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r-- | sys/kern/kern_exec.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index dac4475..44f5e75 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -266,6 +266,9 @@ kern_execve(td, fname, argv, envv, mac_p) */ p->p_flag &= ~P_SA; td->td_mailbox = NULL; + mtx_lock_spin(&sched_lock); + td->td_flags &= ~TDF_SA; + mtx_unlock_spin(&sched_lock); thread_single_end(); } p->p_flag |= P_INEXEC; |