summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--sys/alpha/alpha/machdep.c18
-rw-r--r--sys/alpha/osf1/osf1_signal.c6
-rw-r--r--sys/ia64/ia64/machdep.c6
3 files changed, 5 insertions, 25 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;
}
diff --git a/sys/ia64/ia64/machdep.c b/sys/ia64/ia64/machdep.c
index e313fb9..57e86c3 100644
--- a/sys/ia64/ia64/machdep.c
+++ b/sys/ia64/ia64/machdep.c
@@ -857,11 +857,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;
}
#ifdef DEBUG
OpenPOWER on IntegriCloud