diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/frv/kernel/signal.c | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c index df957c7ba387..b46a8202979b 100644 --- a/arch/frv/kernel/signal.c +++ b/arch/frv/kernel/signal.c | |||
@@ -150,10 +150,7 @@ asmlinkage int sys_sigreturn(void) | |||
150 | goto badframe; | 150 | goto badframe; |
151 | 151 | ||
152 | sigdelsetmask(&set, ~_BLOCKABLE); | 152 | sigdelsetmask(&set, ~_BLOCKABLE); |
153 | spin_lock_irq(¤t->sighand->siglock); | 153 | set_current_blocked(&set); |
154 | current->blocked = set; | ||
155 | recalc_sigpending(); | ||
156 | spin_unlock_irq(¤t->sighand->siglock); | ||
157 | 154 | ||
158 | if (restore_sigcontext(&frame->sc, &gr8)) | 155 | if (restore_sigcontext(&frame->sc, &gr8)) |
159 | goto badframe; | 156 | goto badframe; |
@@ -176,10 +173,7 @@ asmlinkage int sys_rt_sigreturn(void) | |||
176 | goto badframe; | 173 | goto badframe; |
177 | 174 | ||
178 | sigdelsetmask(&set, ~_BLOCKABLE); | 175 | sigdelsetmask(&set, ~_BLOCKABLE); |
179 | spin_lock_irq(¤t->sighand->siglock); | 176 | set_current_blocked(&set); |
180 | current->blocked = set; | ||
181 | recalc_sigpending(); | ||
182 | spin_unlock_irq(¤t->sighand->siglock); | ||
183 | 177 | ||
184 | if (restore_sigcontext(&frame->uc.uc_mcontext, &gr8)) | 178 | if (restore_sigcontext(&frame->uc.uc_mcontext, &gr8)) |
185 | goto badframe; | 179 | goto badframe; |
@@ -466,15 +460,8 @@ static int handle_signal(unsigned long sig, siginfo_t *info, | |||
466 | else | 460 | else |
467 | ret = setup_frame(sig, ka, oldset); | 461 | ret = setup_frame(sig, ka, oldset); |
468 | 462 | ||
469 | if (ret == 0) { | 463 | if (ret == 0) |
470 | spin_lock_irq(¤t->sighand->siglock); | 464 | block_sigmask(ka, sig); |
471 | sigorsets(¤t->blocked, ¤t->blocked, | ||
472 | &ka->sa.sa_mask); | ||
473 | if (!(ka->sa.sa_flags & SA_NODEFER)) | ||
474 | sigaddset(¤t->blocked, sig); | ||
475 | recalc_sigpending(); | ||
476 | spin_unlock_irq(¤t->sighand->siglock); | ||
477 | } | ||
478 | 465 | ||
479 | return ret; | 466 | return ret; |
480 | 467 | ||