*/
static void coda_block_signals(sigset_t *old)
{
- spin_lock_irq(¤t->sighand->siglock);
+ sigset_t blocked;
+
*old = current->blocked;
- sigfillset(¤t->blocked);
- sigdelset(¤t->blocked, SIGKILL);
- sigdelset(¤t->blocked, SIGSTOP);
- sigdelset(¤t->blocked, SIGINT);
+ sigfillset(&blocked);
+ sigdelset(&blocked, SIGKILL);
+ sigdelset(&blocked, SIGSTOP);
+ sigdelset(&blocked, SIGINT);
- recalc_sigpending();
- spin_unlock_irq(¤t->sighand->siglock);
+ set_current_blocked(&blocked);
}
static void coda_unblock_signals(sigset_t *old)
{
- spin_lock_irq(¤t->sighand->siglock);
- current->blocked = *old;
- recalc_sigpending();
- spin_unlock_irq(¤t->sighand->siglock);
+ set_current_blocked(old);
}
/* Don't allow signals to interrupt the following upcalls before venus