aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/tile/kernel/signal.c')
-rw-r--r--arch/tile/kernel/signal.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/arch/tile/kernel/signal.c b/arch/tile/kernel/signal.c
index bedaf4e9f3a7..f79d4b88c747 100644
--- a/arch/tile/kernel/signal.c
+++ b/arch/tile/kernel/signal.c
@@ -97,10 +97,7 @@ SYSCALL_DEFINE1(rt_sigreturn, struct pt_regs *, regs)
97 goto badframe; 97 goto badframe;
98 98
99 sigdelsetmask(&set, ~_BLOCKABLE); 99 sigdelsetmask(&set, ~_BLOCKABLE);
100 spin_lock_irq(&current->sighand->siglock); 100 set_current_blocked(&set);
101 current->blocked = set;
102 recalc_sigpending();
103 spin_unlock_irq(&current->sighand->siglock);
104 101
105 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) 102 if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
106 goto badframe; 103 goto badframe;
@@ -286,13 +283,7 @@ static int handle_signal(unsigned long sig, siginfo_t *info,
286 * the work_pending path in the return-to-user code, and 283 * the work_pending path in the return-to-user code, and
287 * either way we can re-enable interrupts unconditionally. 284 * either way we can re-enable interrupts unconditionally.
288 */ 285 */
289 spin_lock_irq(&current->sighand->siglock); 286 block_sigmask(ka, sig);
290 sigorsets(&current->blocked,
291 &current->blocked, &ka->sa.sa_mask);
292 if (!(ka->sa.sa_flags & SA_NODEFER))
293 sigaddset(&current->blocked, sig);
294 recalc_sigpending();
295 spin_unlock_irq(&current->sighand->siglock);
296 } 287 }
297 288
298 return ret; 289 return ret;