|
@@ -3085,8 +3085,15 @@ EXPORT_SYMBOL(allow_signal);
|
|
|
|
|
|
void disallow_signal(int sig)
|
|
void disallow_signal(int sig)
|
|
{
|
|
{
|
|
|
|
+ sigset_t mask;
|
|
|
|
+
|
|
|
|
+ sigemptyset(&mask);
|
|
|
|
+ sigaddset(&mask, sig);
|
|
|
|
+
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
spin_lock_irq(¤t->sighand->siglock);
|
|
current->sighand->action[(sig)-1].sa.sa_handler = SIG_IGN;
|
|
current->sighand->action[(sig)-1].sa.sa_handler = SIG_IGN;
|
|
|
|
+ flush_sigqueue_mask(&mask, ¤t->signal->shared_pending);
|
|
|
|
+ flush_sigqueue_mask(&mask, ¤t->pending);
|
|
recalc_sigpending();
|
|
recalc_sigpending();
|
|
spin_unlock_irq(¤t->sighand->siglock);
|
|
spin_unlock_irq(¤t->sighand->siglock);
|
|
}
|
|
}
|