summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjdike <jdike>2004-04-07 20:45:59 +0000
committerjdike <jdike>2004-04-07 20:45:59 +0000
commit1c8873684fa3c42cb21a6a04dcda083dbbac18b6 (patch)
tree2fc9bf8084e1fc8d0e2affb0a0aebce48299a867
parent98ec7b5936dd520887dadda29b5974aca4253a27 (diff)
downloaduml-history-1c8873684fa3c42cb21a6a04dcda083dbbac18b6.tar.gz
Removed SA_NOMASK and SA_NODEFER because they don't do what the manpage claims.
-rw-r--r--arch/um/kernel/process.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
index f63d7f9..f2bd066 100644
--- a/arch/um/kernel/process.c
+++ b/arch/um/kernel/process.c
@@ -56,11 +56,7 @@ void init_new_thread_signals(int altstack)
{
int flags = altstack ? SA_ONSTACK : 0;
- /* NODEFER is set here because SEGV isn't turned back on when the
- * handler is ready to receive signals. This causes any segfault
- * during a copy_user to kill the process because the fault is blocked.
- */
- set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags | SA_NODEFER,
+ set_handler(SIGSEGV, (__sighandler_t) sig_handler, flags,
SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
set_handler(SIGTRAP, (__sighandler_t) sig_handler, flags,
SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
@@ -73,7 +69,7 @@ void init_new_thread_signals(int altstack)
set_handler(SIGWINCH, (__sighandler_t) sig_handler, flags,
SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
set_handler(SIGUSR2, (__sighandler_t) sig_handler,
- SA_NOMASK | flags, -1);
+ flags, SIGUSR1, SIGIO, SIGWINCH, SIGALRM, SIGVTALRM, -1);
signal(SIGHUP, SIG_IGN);
init_irq_signals(altstack);