diff options
Diffstat (limited to 'arch/m32r/kernel/signal.c')
-rw-r--r-- | arch/m32r/kernel/signal.c | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/m32r/kernel/signal.c b/arch/m32r/kernel/signal.c index a08697f0886d..f54d96993ea1 100644 --- a/arch/m32r/kernel/signal.c +++ b/arch/m32r/kernel/signal.c | |||
@@ -112,10 +112,7 @@ sys_rt_sigreturn(unsigned long r0, unsigned long r1, | |||
112 | goto badframe; | 112 | goto badframe; |
113 | 113 | ||
114 | sigdelsetmask(&set, ~_BLOCKABLE); | 114 | sigdelsetmask(&set, ~_BLOCKABLE); |
115 | spin_lock_irq(¤t->sighand->siglock); | 115 | set_current_blocked(&set); |
116 | current->blocked = set; | ||
117 | recalc_sigpending(); | ||
118 | spin_unlock_irq(¤t->sighand->siglock); | ||
119 | 116 | ||
120 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &result)) | 117 | if (restore_sigcontext(regs, &frame->uc.uc_mcontext, &result)) |
121 | goto badframe; | 118 | goto badframe; |
@@ -300,12 +297,7 @@ handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info, | |||
300 | if (setup_rt_frame(sig, ka, info, oldset, regs)) | 297 | if (setup_rt_frame(sig, ka, info, oldset, regs)) |
301 | return -EFAULT; | 298 | return -EFAULT; |
302 | 299 | ||
303 | spin_lock_irq(¤t->sighand->siglock); | 300 | block_sigmask(ka, sig); |
304 | sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask); | ||
305 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
306 | sigaddset(¤t->blocked,sig); | ||
307 | recalc_sigpending(); | ||
308 | spin_unlock_irq(¤t->sighand->siglock); | ||
309 | return 0; | 301 | return 0; |
310 | } | 302 | } |
311 | 303 | ||