Change ptrace_report_exit() to use ptrace_event. ---
kernel/ptrace.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) --- PU/kernel/ptrace.c~41_REPORT_EXIT 2009-09-15 20:40:35.000000000 +0200 +++ PU/kernel/ptrace.c 2009-09-16 15:04:48.000000000 +0200 @@ -189,19 +189,19 @@ static u32 utrace_ptrace_report(u32 acti return action | UTRACE_STOP; } -static u32 utrace_ptrace_event(struct task_struct *task, - int event, unsigned long msg) -{ - task->ptrace_message = msg; - return utrace_ptrace_report(0, task, event, (event << 8) | SIGTRAP); -} - static u32 ptrace_report_exit(enum utrace_resume_action action, struct utrace_engine *engine, struct task_struct *task, long orig_code, long *code) { - return utrace_ptrace_event(task, PTRACE_EVENT_EXIT, *code); + struct ptrace_context *context = ptrace_context(engine); + struct ptrace_event *ev; + + ev = ev_push(context); + ev->ev_message = *code; + ev->ev_code = (PTRACE_EVENT_EXIT << 8) | SIGTRAP; + + return UTRACE_STOP; } static void ptrace_clone_attach(struct task_struct *parent,