aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/m68k/kernel/signal.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c
index 8186982fb32..d8f6960e8fd 100644
--- a/arch/m68k/kernel/signal.c
+++ b/arch/m68k/kernel/signal.c
@@ -795,8 +795,7 @@ asmlinkage int do_sigreturn(unsigned long __unused)
795 goto badframe; 795 goto badframe;
796 796
797 sigdelsetmask(&set, ~_BLOCKABLE); 797 sigdelsetmask(&set, ~_BLOCKABLE);
798 current->blocked = set; 798 set_current_blocked(&set);
799 recalc_sigpending();
800 799
801 if (restore_sigcontext(regs, &frame->sc, frame + 1)) 800 if (restore_sigcontext(regs, &frame->sc, frame + 1))
802 goto badframe; 801 goto badframe;
@@ -821,8 +820,7 @@ asmlinkage int do_rt_sigreturn(unsigned long __unused)
821 goto badframe; 820 goto badframe;
822 821
823 sigdelsetmask(&set, ~_BLOCKABLE); 822 sigdelsetmask(&set, ~_BLOCKABLE);
824 current->blocked = set; 823 set_current_blocked(&set);
825 recalc_sigpending();
826 824
827 if (rt_restore_ucontext(regs, sw, &frame->uc)) 825 if (rt_restore_ucontext(regs, sw, &frame->uc))
828 goto badframe; 826 goto badframe;
@@ -1141,10 +1139,7 @@ handle_signal(int sig, struct k_sigaction *ka, siginfo_t *info,
1141 if (err) 1139 if (err)
1142 return; 1140 return;
1143 1141
1144 sigorsets(&current->blocked,&current->blocked,&ka->sa.sa_mask); 1142 block_sigmask(ka, sig);
1145 if (!(ka->sa.sa_flags & SA_NODEFER))
1146 sigaddset(&current->blocked,sig);
1147 recalc_sigpending();
1148 1143
1149 if (test_thread_flag(TIF_DELAYED_TRACE)) { 1144 if (test_thread_flag(TIF_DELAYED_TRACE)) {
1150 regs->sr &= ~0x8000; 1145 regs->sr &= ~0x8000;