diff options
author | Richard Weinberger <richard@nod.at> | 2015-11-18 09:37:15 +0100 |
---|---|---|
committer | Richard Weinberger <richard@nod.at> | 2015-12-08 22:23:30 +0100 |
commit | db2f24dc240856fb1d78005307f1523b7b3c121b (patch) | |
tree | bcd3d684f77891d8c8cf95847de6e6d2ebd424f7 /arch/um | |
parent | 527e9316f8ec44bd53d90fb9f611fa7ffff52bb9 (diff) | |
download | linux-db2f24dc240856fb1d78005307f1523b7b3c121b.tar.gz linux-db2f24dc240856fb1d78005307f1523b7b3c121b.tar.bz2 linux-db2f24dc240856fb1d78005307f1523b7b3c121b.zip |
um: Fix get_signal() usage
If get_signal() returns us a signal to post
we must not call it again, otherwise the already
posted signal will be overridden.
Before commit a610d6e672d this was the case as we stopped
the while after a successful handle_signal().
Cc: <stable@vger.kernel.org> # 3.10-
Fixes: a610d6e672d ("pull clearing RESTORE_SIGMASK into block_sigmask()")
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'arch/um')
-rw-r--r-- | arch/um/kernel/signal.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/um/kernel/signal.c b/arch/um/kernel/signal.c index 57acbd67d85d..fc8be0e3a4ff 100644 --- a/arch/um/kernel/signal.c +++ b/arch/um/kernel/signal.c @@ -69,7 +69,7 @@ void do_signal(struct pt_regs *regs) struct ksignal ksig; int handled_sig = 0; - while (get_signal(&ksig)) { + if (get_signal(&ksig)) { handled_sig = 1; /* Whee! Actually deliver the signal. */ handle_signal(&ksig, regs); |