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. |
