|
@@ -78,6 +78,10 @@ static bool sig_task_ignored(struct task_struct *t, int sig, bool force)
|
|
|
|
|
|
handler = sig_handler(t, sig);
|
|
handler = sig_handler(t, sig);
|
|
|
|
|
|
|
|
+ /* SIGKILL and SIGSTOP may not be sent to the global init */
|
|
|
|
+ if (unlikely(is_global_init(t) && sig_kernel_only(sig)))
|
|
|
|
+ return true;
|
|
|
|
+
|
|
if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) &&
|
|
if (unlikely(t->signal->flags & SIGNAL_UNKILLABLE) &&
|
|
handler == SIG_DFL && !(force && sig_kernel_only(sig)))
|
|
handler == SIG_DFL && !(force && sig_kernel_only(sig)))
|
|
return true;
|
|
return true;
|