From d3b20053a696d3834d4b2cf73afa296464555c85 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Mon, 30 Nov 2009 15:27:21 -0500 Subject: [PATCH] PR10653: don't corrupt signal structs in itrace on rawhide utrace * runtime/itrace.c (usr_itrace_report_signal): On modern utrace, must check/propagate utrace_signal_action(). --- runtime/itrace.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/runtime/itrace.c b/runtime/itrace.c index 03e1e4035..f2ed86f2c 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -131,9 +131,16 @@ static u32 usr_itrace_report_signal(u32 action, ui = rcu_dereference(engine->data); WARN_ON(!ui); - - if (info->si_signo != SIGTRAP || !ui) - return UTRACE_RESUME; + +#if defined(UTRACE_ORIG_VERSION) + if (info->si_signo != SIGTRAP || !ui) + return UTRACE_RESUME; +#else + if (utrace_signal_action(action) == UTRACE_SIGNAL_HANDLER || + utrace_signal_action(action) == UTRACE_SIGNAL_REPORT || + info->si_signo != SIGTRAP || !ui) + return UTRACE_RESUME | utrace_signal_action(action); +#endif #if defined(UTRACE_ORIG_VERSION) && defined(CONFIG_PPC) /* Because of a ppc utrace bug, we need to stop the task here. -- 2.43.5