diff options
author | peter <peter@FreeBSD.org> | 2004-03-13 22:31:39 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2004-03-13 22:31:39 +0000 |
commit | 1cb95fd2b70283ee01393976b8c4f6582fe4c61f (patch) | |
tree | 889a20a7869b0ea5ed48e021f905fe415332a764 /sys/kern/kern_exec.c | |
parent | 43cfb3a55ff1241827aed24e87f2cd5f80566c2b (diff) | |
download | FreeBSD-src-1cb95fd2b70283ee01393976b8c4f6582fe4c61f.zip FreeBSD-src-1cb95fd2b70283ee01393976b8c4f6582fe4c61f.tar.gz |
Push Giant down a little further:
- no longer serialize on Giant for thread_single*() and family in fork,
exit and exec
- thread_wait() is mpsafe, assert no Giant
- reduce scope of Giant in exit to not cover thread_wait and just do
vm_waitproc().
- assert that thread_single() family are not called with Giant
- remove the DROP/PICKUP_GIANT macros from thread_single() family
- assert that thread_suspend_check() s not called with Giant
- remove manual drop_giant hack in thread_suspend_check since we know it
isn't held.
- remove the DROP/PICKUP_GIANT macros from thread_suspend_check() family
- mark kse_create() mpsafe
Diffstat (limited to 'sys/kern/kern_exec.c')
-rw-r--r-- | sys/kern/kern_exec.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c index d2f60d7..a09dba2 100644 --- a/sys/kern/kern_exec.c +++ b/sys/kern/kern_exec.c @@ -253,7 +253,6 @@ kern_execve(td, fname, argv, envv, mac_p) * that might allow a local user to illicitly obtain elevated * privileges. */ - mtx_lock(&Giant); PROC_LOCK(p); KASSERT((p->p_flag & P_INEXEC) == 0, ("%s(): process already has P_INEXEC flag", __func__)); @@ -271,7 +270,6 @@ kern_execve(td, fname, argv, envv, mac_p) td->td_mailbox = NULL; thread_single_end(); } - mtx_unlock(&Giant); p->p_flag |= P_INEXEC; PROC_UNLOCK(p); |