diff --git a/drivers/android/vendor_hooks.c b/drivers/android/vendor_hooks.c index 1b9fdf8badd4..c46ea7001bd2 100644 --- a/drivers/android/vendor_hooks.c +++ b/drivers/android/vendor_hooks.c @@ -241,3 +241,4 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_mmap_region); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_try_to_unmap_one); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_event); EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_psi_group); +EXPORT_TRACEPOINT_SYMBOL_GPL(android_vh_exit_signal); diff --git a/include/trace/hooks/signal.h b/include/trace/hooks/signal.h index c1051ee5d3ac..4e61006cb145 100644 --- a/include/trace/hooks/signal.h +++ b/include/trace/hooks/signal.h @@ -11,6 +11,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 2df1129e4938..95d48c43fd9e 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1057,6 +1057,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);