From: Rafael J. Wysocki Date: Mon, 29 Oct 2007 21:37:12 +0000 (-0700) Subject: Freezer: do not allow freezing processes to clear TIF_SIGPENDING X-Git-Tag: v2.6.24-rc2~91 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cc5f916e90a811dd8f809b4d17409f98e74b237c;p=linux-2.6 Freezer: do not allow freezing processes to clear TIF_SIGPENDING Do not allow processes to clear their TIF_SIGPENDING if TIF_FREEZE is set, so that they will not race with the freezer (like mysqld does, for example). Signed-off-by: Rafael J. Wysocki Acked-by: Nigel Cunningham Acked-by: Pavel Machek Cc: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- diff --git a/kernel/signal.c b/kernel/signal.c index 4537bdda1e..909a0cc6bc 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -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); }