From: Oleg Nesterov Date: Fri, 6 Jun 2014 21:36:57 +0000 (-0700) Subject: signals: kill the obsolete sigdelset() and recalc_sigpending() in allow_signal() X-Git-Tag: v4.9.8~6305^2~4^2~94 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ec5955b8fdc1b0bc62495e13869769be732cc6c3;p=platform%2Fkernel%2Flinux-rpi3.git signals: kill the obsolete sigdelset() and recalc_sigpending() in allow_signal() allow_signal() does sigdelset(current->blocked) due to historic reason, previously it could be called by a daemonize()'ed kthread, and daemonize() played with current->blocked. Now that daemonize() has gone away we can remove sigdelset() and recalc_sigpending(). If a user really wants to unblock a signal, it must use sigprocmask() or set_current_block() explicitely. Signed-off-by: Oleg Nesterov Cc: Peter Zijlstra Cc: Al Viro Cc: David Woodhouse Cc: Frederic Weisbecker Cc: Geert Uytterhoeven Cc: Ingo Molnar Cc: Mathieu Desnoyers Cc: Richard Weinberger Cc: Steven Rostedt Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/signal.c b/kernel/signal.c index 7d6ff8b..c64c891 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3072,16 +3072,13 @@ COMPAT_SYSCALL_DEFINE4(rt_tgsigqueueinfo, */ void allow_signal(int sig) { - spin_lock_irq(¤t->sighand->siglock); - /* This is only needed for daemonize()'ed kthreads */ - sigdelset(¤t->blocked, sig); /* * Kernel threads handle their own signals. Let the signal code * know it'll be handled, so that they don't get converted to * SIGKILL or just silently dropped. */ + spin_lock_irq(¤t->sighand->siglock); current->sighand->action[(sig)-1].sa.sa_handler = (void __user *)2; - recalc_sigpending(); spin_unlock_irq(¤t->sighand->siglock); } EXPORT_SYMBOL(allow_signal);