|
@@ -795,8 +795,7 @@ asmlinkage int do_sigreturn(unsigned long __unused)
|
|
|
goto badframe;
|
|
|
|
|
|
sigdelsetmask(&set, ~_BLOCKABLE);
|
|
|
- current->blocked = set;
|
|
|
- recalc_sigpending();
|
|
|
+ set_current_blocked(&set);
|
|
|
|
|
|
if (restore_sigcontext(regs, &frame->sc, frame + 1))
|
|
|
goto badframe;
|
|
@@ -821,8 +820,7 @@ asmlinkage int do_rt_sigreturn(unsigned long __unused)
|
|
|
goto badframe;
|
|
|
|
|
|
sigdelsetmask(&set, ~_BLOCKABLE);
|
|
|
- current->blocked = set;
|
|
|
- recalc_sigpending();
|
|
|
+ set_current_blocked(&set);
|
|
|
|
|
|
if (rt_restore_ucontext(regs, sw, &frame->uc))
|
|
|
goto badframe;
|
|
@@ -1141,10 +1139,7 @@ handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info,
|
|
|
if (err)
|
|
|
return;
|
|
|
|
|
|
- sigorsets(¤t->blocked,¤t->blocked,&ka->sa.sa_mask);
|
|
|
- if (!(ka->sa.sa_flags & SA_NODEFER))
|
|
|
- sigaddset(¤t->blocked,sig);
|
|
|
- recalc_sigpending();
|
|
|
+ block_sigmask(ka, sig);
|
|
|
|
|
|
if (test_thread_flag(TIF_DELAYED_TRACE)) {
|
|
|
regs->sr &= ~0x8000;
|