diff options
author | davidxu <davidxu@FreeBSD.org> | 2008-11-05 03:01:23 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2008-11-05 03:01:23 +0000 |
commit | 1ebf3ee9a3db9492efa600f6c7614a1851e8c357 (patch) | |
tree | 50003b0f3882d55b6d31a3135664f3a2abd73c56 /sys/kern/sys_process.c | |
parent | e07ee09f61c3fc9b2a221bb67f0bb35f0da0ce63 (diff) | |
download | FreeBSD-src-1ebf3ee9a3db9492efa600f6c7614a1851e8c357.zip FreeBSD-src-1ebf3ee9a3db9492efa600f6c7614a1851e8c357.tar.gz |
Revert rev 184216 and 184199, due to the way the thread_lock works,
it may cause a lockup.
Noticed by: peter, jhb
Diffstat (limited to 'sys/kern/sys_process.c')
-rw-r--r-- | sys/kern/sys_process.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/sys_process.c b/sys/kern/sys_process.c index c67af8c..ceae8de 100644 --- a/sys/kern/sys_process.c +++ b/sys/kern/sys_process.c @@ -795,8 +795,10 @@ kern_ptrace(struct thread *td, int req, pid_t pid, void *addr, int data) * you should use PT_SUSPEND to suspend it before * continuing process. */ + PROC_SLOCK(p); p->p_flag &= ~(P_STOPPED_TRACE|P_STOPPED_SIG|P_WAITED); thread_unsuspend(p); + PROC_SUNLOCK(p); } else { if (data) psignal(p, data); |