aboutsummaryrefslogtreecommitdiffstats
path: root/arch/cris/arch-v32/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/cris/arch-v32/kernel/signal.c')
-rw-r--r--arch/cris/arch-v32/kernel/signal.c25
1 files changed, 4 insertions, 21 deletions
diff --git a/arch/cris/arch-v32/kernel/signal.c b/arch/cris/arch-v32/kernel/signal.c
index e09083208cb6..b0a6cf4f2cad 100644
--- a/arch/cris/arch-v32/kernel/signal.c
+++ b/arch/cris/arch-v32/kernel/signal.c
@@ -168,12 +168,7 @@ sys_sigreturn(long r10, long r11, long r12, long r13, long mof, long srp,
168 goto badframe; 168 goto badframe;
169 169
170 sigdelsetmask(&set, ~_BLOCKABLE); 170 sigdelsetmask(&set, ~_BLOCKABLE);
171 spin_lock_irq(&current->sighand->siglock); 171 set_current_blocked(&set);
172
173 current->blocked = set;
174
175 recalc_sigpending();
176 spin_unlock_irq(&current->sighand->siglock);
177 172
178 if (restore_sigcontext(regs, &frame->sc)) 173 if (restore_sigcontext(regs, &frame->sc))
179 goto badframe; 174 goto badframe;
@@ -214,12 +209,7 @@ sys_rt_sigreturn(long r10, long r11, long r12, long r13, long mof, long srp,
214 goto badframe; 209 goto badframe;
215 210
216 sigdelsetmask(&set, ~_BLOCKABLE); 211 sigdelsetmask(&set, ~_BLOCKABLE);
217 spin_lock_irq(&current->sighand->siglock); 212 set_current_blocked(&set);
218
219 current->blocked = set;
220
221 recalc_sigpending();
222 spin_unlock_irq(&current->sighand->siglock);
223 213
224 if (restore_sigcontext(regs, &frame->uc.uc_mcontext)) 214 if (restore_sigcontext(regs, &frame->uc.uc_mcontext))
225 goto badframe; 215 goto badframe;
@@ -507,15 +497,8 @@ handle_signal(int canrestart, unsigned long sig,
507 if (ka->sa.sa_flags & SA_ONESHOT) 497 if (ka->sa.sa_flags & SA_ONESHOT)
508 ka->sa.sa_handler = SIG_DFL; 498 ka->sa.sa_handler = SIG_DFL;
509 499
510 if (ret == 0) { 500 if (ret == 0)
511 spin_lock_irq(&current->sighand->siglock); 501 block_sigmask(ka, sig);
512 sigorsets(&current->blocked, &current->blocked,
513 &ka->sa.sa_mask);
514 if (!(ka->sa.sa_flags & SA_NODEFER))
515 sigaddset(&current->blocked, sig);
516 recalc_sigpending();
517 spin_unlock_irq(&current->sighand->siglock);
518 }
519 502
520 return ret; 503 return ret;
521} 504}