Messages in this thread Patch in this message | | | Date | Tue, 15 Apr 2014 20:37:06 +0200 | From | Oleg Nesterov <> | Subject | [PATCH RESEND2 08/11] 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 <oleg@redhat.com> --- kernel/signal.c | 5 +---- 1 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/kernel/signal.c b/kernel/signal.c index 8a7ee44..3eec27b 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3071,16 +3071,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); -- 1.5.5.1
| |