diff options
author | jdike <jdike> | 2004-04-07 20:45:59 +0000 |
---|---|---|
committer | jdike <jdike> | 2004-04-07 20:45:59 +0000 |
commit | 1c8873684fa3c42cb21a6a04dcda083dbbac18b6 (patch) | |
tree | 2fc9bf8084e1fc8d0e2affb0a0aebce48299a867 | |
parent | 98ec7b5936dd520887dadda29b5974aca4253a27 (diff) | |
download | uml-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.c | 8 |
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); |