|
@@ -260,10 +260,7 @@ asmlinkage long xtensa_rt_sigreturn(long a0, long a1, long a2, long a3,
|
|
|
goto badframe;
|
|
|
|
|
|
sigdelsetmask(&set, ~_BLOCKABLE);
|
|
|
- spin_lock_irq(¤t->sighand->siglock);
|
|
|
- current->blocked = set;
|
|
|
- recalc_sigpending();
|
|
|
- spin_unlock_irq(¤t->sighand->siglock);
|
|
|
+ set_current_blocked(&set);
|
|
|
|
|
|
if (restore_sigcontext(regs, frame))
|
|
|
goto badframe;
|
|
@@ -448,11 +445,8 @@ asmlinkage long xtensa_rt_sigsuspend(sigset_t __user *unewset,
|
|
|
return -EFAULT;
|
|
|
|
|
|
sigdelsetmask(&newset, ~_BLOCKABLE);
|
|
|
- spin_lock_irq(¤t->sighand->siglock);
|
|
|
saveset = current->blocked;
|
|
|
- current->blocked = newset;
|
|
|
- recalc_sigpending();
|
|
|
- spin_unlock_irq(¤t->sighand->siglock);
|
|
|
+ set_current_blocked(&newset);
|
|
|
|
|
|
regs->areg[2] = -EINTR;
|
|
|
while (1) {
|
|
@@ -539,12 +533,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
|
|
|
if (ret)
|
|
|
return ret;
|
|
|
|
|
|
- spin_lock_irq(¤t->sighand->siglock);
|
|
|
- sigorsets(¤t->blocked, ¤t->blocked, &ka.sa.sa_mask);
|
|
|
- if (!(ka.sa.sa_flags & SA_NODEFER))
|
|
|
- sigaddset(¤t->blocked, signr);
|
|
|
- recalc_sigpending();
|
|
|
- spin_unlock_irq(¤t->sighand->siglock);
|
|
|
+ block_sigmask(&ka, signr);
|
|
|
if (current->ptrace & PT_SINGLESTEP)
|
|
|
task_pt_regs(current)->icountlevel = 1;
|
|
|
|