summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2003-03-31 21:40:47 +0000
committerjeff <jeff@FreeBSD.org>2003-03-31 21:40:47 +0000
commit848087b9b0b45a29daa2a3f8acf9cb8d797e8b51 (patch)
tree160e82df3537ad029f4930285efcd5ff4fbccdc4 /sys/alpha
parentca1839cb9191762cd4c49990a18f78fd9798c4d1 (diff)
downloadFreeBSD-src-848087b9b0b45a29daa2a3f8acf9cb8d797e8b51.zip
FreeBSD-src-848087b9b0b45a29daa2a3f8acf9cb8d797e8b51.tar.gz
- Use sigexit() instead of twiddling the signal mask, catch, ignore, and
action bits to allow SIGILL to work as expected. This brings this file in line with other architectures.
Diffstat (limited to 'sys/alpha')
-rw-r--r--sys/alpha/alpha/machdep.c18
-rw-r--r--sys/alpha/osf1/osf1_signal.c6
2 files changed, 4 insertions, 20 deletions
diff --git a/sys/alpha/alpha/machdep.c b/sys/alpha/alpha/machdep.c
index 98afcd1..273bda5 100644
--- a/sys/alpha/alpha/machdep.c
+++ b/sys/alpha/alpha/machdep.c
@@ -1199,11 +1199,7 @@ osendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
* instruction to halt it in its tracks.
*/
PROC_LOCK(p);
- SIGACTION(p, SIGILL) = SIG_DFL;
- SIGDELSET(p->p_sigignore, SIGILL);
- SIGDELSET(p->p_sigcatch, SIGILL);
- SIGDELSET(p->p_sigmask, SIGILL);
- psignal(p, SIGILL);
+ sigexit(td, SIGILL);
return;
}
@@ -1305,11 +1301,7 @@ freebsd4_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
* instruction to halt it in its tracks.
*/
PROC_LOCK(p);
- SIGACTION(p, SIGILL) = SIG_DFL;
- SIGDELSET(p->p_sigignore, SIGILL);
- SIGDELSET(p->p_sigcatch, SIGILL);
- SIGDELSET(p->p_sigmask, SIGILL);
- psignal(p, SIGILL);
+ sigexit(td, SIGILL);
return;
}
@@ -1430,11 +1422,7 @@ sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
* instruction to halt it in its tracks.
*/
PROC_LOCK(p);
- SIGACTION(p, SIGILL) = SIG_DFL;
- SIGDELSET(p->p_sigignore, SIGILL);
- SIGDELSET(p->p_sigcatch, SIGILL);
- SIGDELSET(p->p_sigmask, SIGILL);
- psignal(p, SIGILL);
+ sigexit(td, SIGILL);
return;
}
diff --git a/sys/alpha/osf1/osf1_signal.c b/sys/alpha/osf1/osf1_signal.c
index b1369ed..718c7d9 100644
--- a/sys/alpha/osf1/osf1_signal.c
+++ b/sys/alpha/osf1/osf1_signal.c
@@ -663,11 +663,7 @@ osf1_sendsig(sig_t catcher, int sig, sigset_t *mask, u_long code)
* instruction to halt it in its tracks.
*/
PROC_LOCK(p);
- SIGACTION(p, SIGILL) = SIG_DFL;
- SIGDELSET(p->p_sigignore, SIGILL);
- SIGDELSET(p->p_sigcatch, SIGILL);
- SIGDELSET(p->p_sigmask, SIGILL);
- psignal(p, SIGILL);
+ sigexit(td, SIGILL);
return;
}
OpenPOWER on IntegriCloud