diff options
Diffstat (limited to 'arch/ia64/kernel/signal.c')
-rw-r--r-- | arch/ia64/kernel/signal.c | 15 |
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(¤t->sighand->siglock); | ||
206 | { | ||
207 | current->blocked = set; | ||
208 | recalc_sigpending(); | ||
209 | } | ||
210 | spin_unlock_irq(¤t->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(¤t->sighand->siglock); | 424 | block_sigmask(ka, sig); |
431 | sigorsets(¤t->blocked, ¤t->blocked, &ka->sa.sa_mask); | ||
432 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
433 | sigaddset(¤t->blocked, sig); | ||
434 | recalc_sigpending(); | ||
435 | spin_unlock_irq(¤t->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. |