diff options
Diffstat (limited to 'arch/tile/kernel/signal.c')
-rw-r--r-- | arch/tile/kernel/signal.c | 13 |
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(¤t->sighand->siglock); | 100 | set_current_blocked(&set); |
101 | current->blocked = set; | ||
102 | recalc_sigpending(); | ||
103 | spin_unlock_irq(¤t->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(¤t->sighand->siglock); | 286 | block_sigmask(ka, sig); |
290 | sigorsets(¤t->blocked, | ||
291 | ¤t->blocked, &ka->sa.sa_mask); | ||
292 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
293 | sigaddset(¤t->blocked, sig); | ||
294 | recalc_sigpending(); | ||
295 | spin_unlock_irq(¤t->sighand->siglock); | ||
296 | } | 287 | } |
297 | 288 | ||
298 | return ret; | 289 | return ret; |