UPSTREAM: signals: avoid random wakeups in sigsuspend()
authorSasha Levin <sasha.levin@oracle.com>
Fri, 5 Feb 2016 23:36:05 +0000 (15:36 -0800)
committerHuang, Tao <huangtao@rock-chips.com>
Tue, 15 Nov 2016 04:00:57 +0000 (12:00 +0800)
commit2303a7faef52063c2b71861516fb4eddc5af03f6
tree38a136f8c885266abd30f727da748b0d976e488a
parent03b8ccabe5d7585a8908b25fae494391b12d51ca
UPSTREAM: signals: avoid random wakeups in sigsuspend()

A random wakeup can get us out of sigsuspend() without TIF_SIGPENDING
being set.

Avoid that by making sure we were signaled, like sys_pause() does.

Change-Id: Ie647d2797416c6e53628174a07b62246e23081e7
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Acked-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 823dd3224a07f618d652a7743c9603222d019de3)
kernel/signal.c