summaryrefslogtreecommitdiff
path: root/kernel/signal.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2016-02-22 10:26:05 +0300
committerIngo Molnar <mingo@kernel.org>2016-02-22 10:26:05 +0300
commitab876728a91d89e93e4928895529cd5bb4dff6e4 (patch)
tree3aa7603c289f79a570cf15e4019b1acb9459e608 /kernel/signal.c
parent35575e0e8ba633fc8276509a21f89b599b4f9006 (diff)
parent81f70ba233d5f660e1ea5fe23260ee323af5d53a (diff)
downloadlinux-ab876728a91d89e93e4928895529cd5bb4dff6e4.tar.xz
Merge tag 'v4.5-rc5' into efi/core, before queueing up new changes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/signal.c')
-rw-r--r--kernel/signal.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/signal.c b/kernel/signal.c
index f3f1f7a972fd..0508544c8ced 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -3508,8 +3508,10 @@ static int sigsuspend(sigset_t *set)
current->saved_sigmask = current->blocked;
set_current_blocked(set);
- __set_current_state(TASK_INTERRUPTIBLE);
- schedule();
+ while (!signal_pending(current)) {
+ __set_current_state(TASK_INTERRUPTIBLE);
+ schedule();
+ }
set_restore_sigmask();
return -ERESTARTNOHAND;
}