• Oleg Nesterov's avatar
    signals: disallow_signal() should flush the potentially pending signal · 580d34e4
    Oleg Nesterov authored
    disallow_signal() simply sets SIG_IGN, this is not enough and
    recalc_sigpending() is simply pointless because in can never change the
    state of TIF_SIGPENDING.
    
    If we ignore a signal, we also need to do flush_sigqueue_mask() for the
    case when this signal is pending, this way recalc_sigpending() can
    actually clear TIF_SIGPENDING and we do not "leak" the allocated
    siginfo's.
    Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Richard Weinberger <richard@nod.at>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Tejun Heo <tj@kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    580d34e4
signal.c 95.3 KB