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-Url: https://git.stricted.de/?a=commitdiff_plain;h=ec5955b8fdc1b0bc62495e13869769be732cc6c3;p=GitHub%2FLineageOS%2FG12%2Fandroid_kernel_amlogic_linux-4.9.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 7d6ff8b18509..c64c891ca0a6 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);