diff options
author | Dave Brolley <brolley@redhat.com> | 2009-05-19 11:42:20 -0400 |
---|---|---|
committer | Dave Brolley <brolley@redhat.com> | 2009-05-19 11:42:20 -0400 |
commit | 88a931144b278916dd157e0f69636e87f8fdc949 (patch) | |
tree | 4cdd8928f2a0e4e506005e6d864fde0d07ddfedb /runtime/itrace.c | |
parent | e9cb523875a37b2d809afbbe0fffae980d8080a1 (diff) | |
parent | c897e941ca645ab1e2aa325e5feaae30cc43060e (diff) | |
download | systemtap-steved-88a931144b278916dd157e0f69636e87f8fdc949.tar.gz systemtap-steved-88a931144b278916dd157e0f69636e87f8fdc949.tar.xz systemtap-steved-88a931144b278916dd157e0f69636e87f8fdc949.zip |
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Diffstat (limited to 'runtime/itrace.c')
-rw-r--r-- | runtime/itrace.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/runtime/itrace.c b/runtime/itrace.c index 68f85301..3014f9e5 100644 --- a/runtime/itrace.c +++ b/runtime/itrace.c @@ -20,6 +20,11 @@ #include <linux/utrace.h> #include "ptrace_compatibility.h" +/* PR10171: To avoid ia64 lockups, disable itrace on ia64. */ +#if defined(__ia64__) +#error "Unsupported itrace architecture" +#endif + /* PR9974: Adapt to struct renaming. */ #ifdef UTRACE_API_VERSION #define utrace_attached_engine utrace_engine @@ -182,8 +187,14 @@ static u32 usr_itrace_report_signal(u32 action, if (info->si_signo != SIGTRAP || !ui) return UTRACE_RESUME; +#if defined(UTRACE_ORIG_VERSION) && defined(CONFIG_PPC) + /* Because of a ppc utrace bug, we need to stop the task here. + usr_itrace_report_quiesce() will continue stepping the task. */ + return_flags = UTRACE_SIGNAL_IGN | UTRACE_STOP | UTRACE_ACTION_NEWSTATE; +#else /* normal case: continue stepping */ return_flags = ui->step_flag | UTRACE_SIGNAL_IGN; +#endif #ifdef CONFIG_PPC if (ui->ppc_atomic_ss.step_over_atomic) { remove_atomic_ss_breakpoint(tsk, &ui->ppc_atomic_ss.end_bpt); |