summaryrefslogtreecommitdiff
path: root/kernel/signal.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2016-02-17 10:37:36 +0100
committerIngo Molnar <mingo@kernel.org>2016-02-17 10:37:36 +0100
commit9109dc97b0155e500cdf3bcd91507bc24defefc1 (patch)
tree5d721cbfeb3576dc6969093ab04f17666737b6a4 /kernel/signal.c
parent27f6d22b037b2be6685e0e27cce929779d634119 (diff)
parent059fcd8cd16622da6513804a7a3e826d152c6c96 (diff)
Merge branch 'perf/urgent' into perf/core, to queue up dependent patch
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 f3f1f7a972fd4..0508544c8ced0 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;
}