From 14cdcb33860e0247ca64f68e25df59a2ed3c5d9d Mon Sep 17 00:00:00 2001 From: Kris Van Hees Date: Wed, 14 Oct 2015 05:27:44 -0400 Subject: [PATCH] dtrace: correct signal-handle probe semantics The proc:::signal-handle probe should fire when a signal is presented to a task for handling, regardless of the handler settings. Previously, we were only firing this probe when the signal actually had a specific handler associated with it. Orabug: 21974641 Signed-off-by: Kris Van Hees Acked-by: Nick Alcock --- kernel/signal.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c index 7d3de199c197..f337fd006bc5 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -2266,6 +2266,11 @@ relock: ka = &sighand->action[signr-1]; + DTRACE_PROC3(signal__handle, int, signr, siginfo_t *, + ksig->ka.sa.sa_handler != SIG_DFL ? NULL : + &ksig->info, void (*)(void), + ksig->ka.sa.sa_handler); + /* Trace actually delivered signals. */ trace_signal_deliver(signr, &ksig->info, ka); @@ -2365,12 +2370,6 @@ relock: } spin_unlock_irq(&sighand->siglock); - if (signr != 0) { - DTRACE_PROC3(signal__handle, int, signr, siginfo_t *, - ksig->ka.sa.sa_handler != SIG_DFL ? NULL : - &ksig->info, void (*)(void), - ksig->ka.sa.sa_handler); - } ksig->sig = signr; return ksig->sig > 0; } -- 2.50.1