|
@@ -57,10 +57,7 @@ void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
|
|
|
void restore_sigmask(sigset_t *set)
|
|
|
{
|
|
|
sigdelsetmask(set, ~_BLOCKABLE);
|
|
|
- spin_lock_irq(¤t->sighand->siglock);
|
|
|
- current->blocked = *set;
|
|
|
- recalc_sigpending();
|
|
|
- spin_unlock_irq(¤t->sighand->siglock);
|
|
|
+ set_current_blocked(set);
|
|
|
}
|
|
|
|
|
|
static void check_syscall_restart(struct pt_regs *regs, struct k_sigaction *ka,
|
|
@@ -169,13 +166,7 @@ static int do_signal(struct pt_regs *regs)
|
|
|
|
|
|
regs->trap = 0;
|
|
|
if (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);
|
|
|
|
|
|
/*
|
|
|
* A signal was successfully delivered; the saved sigmask is in
|