aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/ia64/kernel/signal.c')
-rw-r--r--arch/ia64/kernel/signal.c15
1 files changed, 2 insertions, 13 deletions
diff --git a/arch/ia64/kernel/signal.c b/arch/ia64/kernel/signal.c
index 7bdafc8788bd..7523501d3bc0 100644
--- a/arch/ia64/kernel/signal.c
+++ b/arch/ia64/kernel/signal.c
@@ -201,13 +201,7 @@ ia64_rt_sigreturn (struct sigscratch *scr)
201 goto give_sigsegv; 201 goto give_sigsegv;
202 202
203 sigdelsetmask(&set, ~_BLOCKABLE); 203 sigdelsetmask(&set, ~_BLOCKABLE);
204 204 set_current_blocked(&set);
205 spin_lock_irq(&current->sighand->siglock);
206 {
207 current->blocked = set;
208 recalc_sigpending();
209 }
210 spin_unlock_irq(&current->sighand->siglock);
211 205
212 if (restore_sigcontext(sc, scr)) 206 if (restore_sigcontext(sc, scr))
213 goto give_sigsegv; 207 goto give_sigsegv;
@@ -427,12 +421,7 @@ handle_signal (unsigned long sig, struct k_sigaction *ka, siginfo_t *info, sigse
427 if (!setup_frame(sig, ka, info, oldset, scr)) 421 if (!setup_frame(sig, ka, info, oldset, scr))
428 return 0; 422 return 0;
429 423
430 spin_lock_irq(&current->sighand->siglock); 424 block_sigmask(ka, sig);
431 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
432 if (!(ka->sa.sa_flags & SA_NODEFER))
433 sigaddset(&current->blocked, sig);
434 recalc_sigpending();
435 spin_unlock_irq(&current->sighand->siglock);
436 425
437 /* 426 /*
438 * Let tracing know that we've done the handler setup. 427 * Let tracing know that we've done the handler setup.