|
@@ -1054,10 +1054,11 @@ static int __send_signal(int sig, struct siginfo *info, struct task_struct *t,
|
|
|
|
|
|
result = TRACE_SIGNAL_DELIVERED;
|
|
result = TRACE_SIGNAL_DELIVERED;
|
|
/*
|
|
/*
|
|
- * fast-pathed signals for kernel-internal things like SIGSTOP
|
|
|
|
- * or SIGKILL.
|
|
|
|
|
|
+ * Skip useless siginfo allocation for SIGKILL SIGSTOP,
|
|
|
|
+ * and kernel threads.
|
|
*/
|
|
*/
|
|
- if ((info == SEND_SIG_FORCED) || (t->flags & PF_KTHREAD))
|
|
|
|
|
|
+ if ((info == SEND_SIG_FORCED) ||
|
|
|
|
+ sig_kernel_only(sig) || (t->flags & PF_KTHREAD))
|
|
goto out_set;
|
|
goto out_set;
|
|
|
|
|
|
/*
|
|
/*
|