aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/score/kernel/signal.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/score/kernel/signal.c b/arch/score/kernel/signal.c
index bf9e33e05334..5a5bd1763336 100644
--- a/arch/score/kernel/signal.c
+++ b/arch/score/kernel/signal.c
@@ -159,10 +159,7 @@ score_rt_sigreturn(struct pt_regs *regs)
159 goto badframe; 159 goto badframe;
160 160
161 sigdelsetmask(&set, ~_BLOCKABLE); 161 sigdelsetmask(&set, ~_BLOCKABLE);
162 spin_lock_irq(&current->sighand->siglock); 162 set_current_blocked(&set);
163 current->blocked = set;
164 recalc_sigpending();
165 spin_unlock_irq(&current->sighand->siglock);
166 163
167 sig = restore_sigcontext(regs, &frame->rs_uc.uc_mcontext); 164 sig = restore_sigcontext(regs, &frame->rs_uc.uc_mcontext);
168 if (sig < 0) 165 if (sig < 0)
@@ -272,14 +269,8 @@ static int handle_signal(unsigned long sig, siginfo_t *info,
272 */ 269 */
273 ret = setup_rt_frame(ka, regs, sig, oldset, info); 270 ret = setup_rt_frame(ka, regs, sig, oldset, info);
274 271
275 if (ret == 0) { 272 if (ret == 0)
276 spin_lock_irq(&current->sighand->siglock); 273 block_sigmask(ka, sig);
277 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
278 if (!(ka->sa.sa_flags & SA_NODEFER))
279 sigaddset(&current->blocked, sig);
280 recalc_sigpending();
281 spin_unlock_irq(&current->sighand->siglock);
282 }
283 274
284 return ret; 275 return ret;
285} 276}