On Thu, Jun 10, 2021 at 12:01 PM Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote: > > diff --git a/kernel/signal.c b/kernel/signal.c > index f7c6ffcbd044..83d534deeb76 100644 > --- a/kernel/signal.c > +++ b/kernel/signal.c > @@ -943,8 +943,6 @@ static bool prepare_signal(int sig, struct task_struct *p, bool force) > sigset_t flush; > > if (signal->flags & (SIGNAL_GROUP_EXIT | SIGNAL_GROUP_COREDUMP)) { > - if (!(signal->flags & SIGNAL_GROUP_EXIT)) > - return sig == SIGKILL; > /* > * The process is in the middle of dying, nothing to do. > */ I do think this part of the patch is correct, but I'd like to know what triggered this change? It seems fairly harmless - SIGKILL used to be the only signal that was passed through in the coredump case, now you pass through all non-ignored signals. But since SIGKILL is the only signal that is relevant for the fatal_signal_pending() case, this change seems irrelevant for the coredump issue. Any other signals passed through won't matter. End result: I think removing those two lines is likely a good idea, but I also suspect it could/should just be a separate patch with a separate explanation for it. Hmm? Linus