diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 43d7b015a3cb..8db0cf5bbc79 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -297,3 +297,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_resume_begin); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_resume_end); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_early_resume_begin); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_si_meminfo); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal); diff --git a/include/trace/hooks/signal.h b/include/trace/hooks/signal.h index ec9c5e86661b..4992f1b760a8 100644 --- a/include/trace/hooks/signal.h +++ b/include/trace/hooks/signal.h @@ -12,6 +12,9 @@ struct task_struct; DECLARE_HOOK(android_vh_do_send_sig_info, TP_PROTO(int sig, struct task_struct *killer, struct task_struct *dst), TP_ARGS(sig, killer, dst)); +DECLARE_HOOK(android_vh_exit_signal, + TP_PROTO(struct task_struct *task), + TP_ARGS(task)); #endif /* _TRACE_HOOK_SIGNAL_H */ /* This part must be outside protection */ #include diff --git a/kernel/signal.c b/kernel/signal.c index 37fad322283a..65442deb15e8 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1049,6 +1049,7 @@ static void complete_signal(int sig, struct task_struct *p, enum pid_type type) signal->group_stop_count = 0; t = p; do { + trace_android_vh_exit_signal(t); task_clear_jobctl_pending(t, JOBCTL_PENDING_MASK); sigaddset(&t->pending.signal, SIGKILL); signal_wake_up(t, 1);