|
@@ -313,45 +313,6 @@ kill_orphaned_pgrp(struct task_struct *tsk, struct task_struct *parent)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * Let kernel threads use this to say that they allow a certain signal.
|
|
|
- * Must not be used if kthread was cloned with CLONE_SIGHAND.
|
|
|
- */
|
|
|
-int allow_signal(int sig)
|
|
|
-{
|
|
|
- if (!valid_signal(sig) || sig < 1)
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- spin_lock_irq(¤t->sighand->siglock);
|
|
|
- /* This is only needed for daemonize()'ed kthreads */
|
|
|
- sigdelset(¤t->blocked, sig);
|
|
|
- /*
|
|
|
- * Kernel threads handle their own signals. Let the signal code
|
|
|
- * know it'll be handled, so that they don't get converted to
|
|
|
- * SIGKILL or just silently dropped.
|
|
|
- */
|
|
|
- current->sighand->action[(sig)-1].sa.sa_handler = (void __user *)2;
|
|
|
- recalc_sigpending();
|
|
|
- spin_unlock_irq(¤t->sighand->siglock);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-EXPORT_SYMBOL(allow_signal);
|
|
|
-
|
|
|
-int disallow_signal(int sig)
|
|
|
-{
|
|
|
- if (!valid_signal(sig) || sig < 1)
|
|
|
- return -EINVAL;
|
|
|
-
|
|
|
- spin_lock_irq(¤t->sighand->siglock);
|
|
|
- current->sighand->action[(sig)-1].sa.sa_handler = SIG_IGN;
|
|
|
- recalc_sigpending();
|
|
|
- spin_unlock_irq(¤t->sighand->siglock);
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-EXPORT_SYMBOL(disallow_signal);
|
|
|
-
|
|
|
#ifdef CONFIG_MEMCG
|
|
|
/*
|
|
|
* A task is exiting. If it owned this mm, find a new owner for the mm.
|