Re: [PATCH v3] signal: trace_signal_deliver when signal_group_exit

From: Christian Brauner
Date: Tue Apr 23 2019 - 09:33:39 EST


On Tue, Apr 23, 2019 at 01:10:52PM +0000, weizhenliang wrote:
> On Mon, Apr 22, 2019 at 11:25 PM Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> >On 04/22, Zhenliang Wei wrote:
> >>
> >> --- a/kernel/signal.c
> >> +++ b/kernel/signal.c
> >> @@ -2441,6 +2441,7 @@ bool get_signal(struct ksignal *ksig)
> >> if (signal_group_exit(signal)) {
> >> ksig->info.si_signo = signr = SIGKILL;
> >> sigdelset(&current->pending.signal, SIGKILL);
> >> + trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO, SIG_DFL);
> >> recalc_sigpending();
> >> goto fatal;
> >> }
> >
> >Reviewed-by: Oleg Nesterov <oleg@xxxxxxxxxx>
>
> Last time Oleg suggested using SIG_DFL as the third parameter, but its type is 'void (*)(int)', but not expected 'struct k_sigaction *'.

Sigh, I should've caught that in the first commit.
Although it suggests you didn't even compile your patch...

>
> How about
> trace_signal_deliver(SIGKILL, SEND_SIG_NOINFO, &sighand->action[signr - 1]);
> ?

That should work, yes.

Christian