aboutsummaryrefslogtreecommitdiffstats
path: root/arch/frv/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'arch/frv/kernel')
-rw-r--r--arch/frv/kernel/signal.c21
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(&current->sighand->siglock); 153 set_current_blocked(&set);
154 current->blocked = set;
155 recalc_sigpending();
156 spin_unlock_irq(&current->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(&current->sighand->siglock); 176 set_current_blocked(&set);
180 current->blocked = set;
181 recalc_sigpending();
182 spin_unlock_irq(&current->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(&current->sighand->siglock); 464 block_sigmask(ka, sig);
471 sigorsets(&current->blocked, &current->blocked,
472 &ka->sa.sa_mask);
473 if (!(ka->sa.sa_flags & SA_NODEFER))
474 sigaddset(&current->blocked, sig);
475 recalc_sigpending();
476 spin_unlock_irq(&current->sighand->siglock);
477 }
478 465
479 return ret; 466 return ret;
480 467