You are right, thanks, suppress_sigtrap() is no longer needed.

Surprisingly, it even has the comment which explains why it was needed before,
and since the recent changes SIGTRAP from tracehook_report_syscall_exit()
pathes is just not possible with utrace.

This should also fix the compilation on s390.

---

 kernel/ptrace-utrace.c |   19 +------------------
 1 file changed, 1 insertion(+), 18 deletions(-)

--- UTRACE-PTRACE/kernel/ptrace-utrace.c~141_KILL_SUPPRESS_SIGTRAP      
2009-12-04 16:19:17.000000000 +0100
+++ UTRACE-PTRACE/kernel/ptrace-utrace.c        2009-12-05 16:16:15.000000000 
+0100
@@ -324,16 +324,6 @@ static void ptrace_clone_attach(struct t
        set_tsk_thread_flag(child, TIF_SIGPENDING);
 }
 
-/*
- * Prevents sending SIGTRAP after tracehook_report_syscall_exit().
- * Called when we are going to emulate the stop before SYSCALL_EXIT.
- */
-static void suppress_sigtrap(struct task_struct *task)
-{
-       if (test_tsk_thread_flag(task, TIF_SINGLESTEP))
-               user_disable_single_step(task);
-}
-
 static u32 ptrace_report_clone(enum utrace_resume_action action,
                               struct utrace_engine *engine,
                               struct task_struct *parent,
@@ -369,8 +359,6 @@ static u32 ptrace_report_clone(enum utra
        if (!event)
                return UTRACE_RESUME;
 
-       suppress_sigtrap(parent);
-
        set_stop_code(ctx, event);
        ctx->eventmsg = child->pid;
        /*
@@ -411,11 +399,8 @@ static u32 ptrace_report_syscall_entry(u
 
        set_syscall_code(ctx);
 
-       if (unlikely(ctx->options & PTRACE_O_SYSEMU)) {
-               suppress_sigtrap(task);
+       if (unlikely(ctx->options & PTRACE_O_SYSEMU))
                return UTRACE_SYSCALL_ABORT | UTRACE_REPORT;
-       }
-
        /*
         * Stop now to report.  We will get another callback after
         * we resume, with the UTRACE_SYSCALL_RESUMED flag set.
@@ -465,9 +450,7 @@ static u32 ptrace_report_exec(enum utrac
                return UTRACE_RESUME;
        }
 
-       suppress_sigtrap(task);
        set_stop_code(ctx, PTRACE_EVENT_EXEC);
-
        return UTRACE_STOP;
 }
 

Reply via email to