um: simplify set_handler()

For one thing, we always block the same signals (IRQ ones - IO, WINCH, VTALRM),
so there's no need to pass sa_mask elements in arguments.  For another, the
flags depend only on whether it's an IRQ signal or not (we add SA_RESTART
for them).

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Richard Weinberger <richard@nod.at>
This commit is contained in:
Al Viro 2011-08-18 20:04:29 +01:00 committed by Richard Weinberger
parent d5c7e8b4ec
commit e87df986ed
4 changed files with 19 additions and 27 deletions

View file

@ -235,20 +235,13 @@ out:
void init_new_thread_signals(void)
{
set_handler(SIGSEGV, (__sighandler_t) sig_handler, SA_ONSTACK,
SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGTRAP, (__sighandler_t) sig_handler, SA_ONSTACK,
SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGFPE, (__sighandler_t) sig_handler, SA_ONSTACK,
SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGILL, (__sighandler_t) sig_handler, SA_ONSTACK,
SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGBUS, (__sighandler_t) sig_handler, SA_ONSTACK,
SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGSEGV, (__sighandler_t) sig_handler);
set_handler(SIGTRAP, (__sighandler_t) sig_handler);
set_handler(SIGFPE, (__sighandler_t) sig_handler);
set_handler(SIGILL, (__sighandler_t) sig_handler);
set_handler(SIGBUS, (__sighandler_t) sig_handler);
signal(SIGHUP, SIG_IGN);
set_handler(SIGIO, (__sighandler_t) sig_handler,
SA_ONSTACK | SA_RESTART, SIGIO, SIGWINCH, SIGVTALRM, -1);
set_handler(SIGIO, (__sighandler_t) sig_handler);
signal(SIGWINCH, SIG_IGN);
signal(SIGTERM, SIG_DFL);
}