diff options
-rw-r--r-- | sys/pc98/i386/machdep.c | 9 | ||||
-rw-r--r-- | sys/pc98/pc98/machdep.c | 9 |
2 files changed, 8 insertions, 10 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); } /* diff --git a/sys/pc98/pc98/machdep.c b/sys/pc98/pc98/machdep.c index f0ba824..c78aa589 100644 --- a/sys/pc98/pc98/machdep.c +++ b/sys/pc98/pc98/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); } /* |