X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fsignal.c;h=afa4f781f924999086c3fe2f34530e1ee84b6496;hb=2cfae2739bda8fc5d934977c0ab19f6df1dd6d6c;hp=4537bdda1ebfa5c67f1ae8a8aec435c8b01a73b9;hpb=00cda56d39f013cce60f44f1e3da19b87eba5d85;p=linux-2.6 diff --git a/kernel/signal.c b/kernel/signal.c index 4537bdda1e..afa4f781f9 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -55,7 +55,7 @@ static int sig_ignored(struct task_struct *t, int sig) * signal handler may change by the time it is * unblocked. */ - if (sigismember(&t->blocked, sig)) + if (sigismember(&t->blocked, sig) || sigismember(&t->real_blocked, sig)) return 0; /* Is it explicitly or implicitly ignored? */ @@ -124,7 +124,7 @@ void recalc_sigpending_and_wake(struct task_struct *t) void recalc_sigpending(void) { - if (!recalc_sigpending_tsk(current)) + if (!recalc_sigpending_tsk(current) && !freezing(current)) clear_thread_flag(TIF_SIGPENDING); }