diff options
author | kato <kato@FreeBSD.org> | 2001-09-12 08:15:24 +0000 |
---|---|---|
committer | kato <kato@FreeBSD.org> | 2001-09-12 08:15:24 +0000 |
commit | 9c673fcc995b39bd03df1bfb98cf4cc6fa30ce2f (patch) | |
tree | 4182b3956162b74ac12a9cde9033c10111a9ea3c /sys/pc98/i386 | |
parent | 6e7368374a2683bc098be01dc2403d2c098c37b0 (diff) | |
download | FreeBSD-src-9c673fcc995b39bd03df1bfb98cf4cc6fa30ce2f.zip FreeBSD-src-9c673fcc995b39bd03df1bfb98cf4cc6fa30ce2f.tar.gz |
Merged from sys/i386/i386/machdep.c revision 1.479.
Diffstat (limited to 'sys/pc98/i386')
-rw-r--r-- | sys/pc98/i386/machdep.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/pc98/i386/machdep.c b/sys/pc98/i386/machdep.c index f0ba824..c78aa589 100644 --- a/sys/pc98/i386/machdep.c +++ b/sys/pc98/i386/machdep.c @@ -307,7 +307,7 @@ osendsig(catcher, sig, mask, code) int oonstack; p = curproc; - PROC_LOCK(p); + PROC_LOCK_ASSERT(p, MA_OWNED); psp = p->p_sigacts; regs = p->p_frame; oonstack = sigonstack(regs->tf_esp); @@ -341,7 +341,6 @@ osendsig(catcher, sig, mask, code) SIGDELSET(p->p_sigcatch, SIGILL); SIGDELSET(p->p_sigmask, SIGILL); psignal(p, SIGILL); - PROC_UNLOCK(p); return; } @@ -435,6 +434,7 @@ osendsig(catcher, sig, mask, code) regs->tf_fs = _udatasel; load_gs(_udatasel); regs->tf_ss = _udatasel; + PROC_LOCK(p); } #endif @@ -453,11 +453,10 @@ sendsig(catcher, sig, mask, code) int oonstack; p = curproc; - PROC_LOCK(p); + PROC_LOCK_ASSERT(p, MA_OWNED); psp = p->p_sigacts; #ifdef COMPAT_43 if (SIGISMEMBER(psp->ps_osigset, sig)) { - PROC_UNLOCK(p); osendsig(catcher, sig, mask, code); return; } @@ -507,7 +506,6 @@ sendsig(catcher, sig, mask, code) SIGDELSET(p->p_sigcatch, SIGILL); SIGDELSET(p->p_sigmask, SIGILL); psignal(p, SIGILL); - PROC_UNLOCK(p); return; } @@ -587,6 +585,7 @@ sendsig(catcher, sig, mask, code) regs->tf_es = _udatasel; regs->tf_fs = _udatasel; regs->tf_ss = _udatasel; + PROC_LOCK(p); } /* |