The new ptrace-tests/tests/syscall-from-clone.c fails as expected.

Because, following your suggestion,  I postponed the "final" changes in
ptrace_report_clone() until we fix the more important things. But since
we have the new test-case, add the trivial fix.

ptrace_report_clone() still needs changes! Will do later.

---

 kernel/ptrace.c |    4 ++++
 1 file changed, 4 insertions(+)

--- PU/kernel/ptrace.c~53_CLONE_ATTACH_SYSCALL  2009-09-23 20:49:33.000000000 
+0200
+++ PU/kernel/ptrace.c  2009-09-23 20:51:47.000000000 +0200
@@ -99,6 +99,8 @@ void __ptrace_link(struct task_struct *c
 static const struct utrace_engine_ops ptrace_utrace_ops; /* forward decl */
 static int ptrace_attach_task(struct task_struct *tracee, int options);
 static void ptrace_abort_attach(struct task_struct *tracee);
+static void ptrace_resume_ck_syscall(struct utrace_engine *engine,
+                               struct task_struct *tracee, long data);
 
 static struct utrace_engine *ptrace_lookup_engine(struct task_struct *tracee)
 {
@@ -223,6 +225,7 @@ static u32 ptrace_report_clone(enum utra
 
                ev->ev_message = child->pid;
                ev->ev_code = (event << 8) | SIGTRAP;
+               ev->ev_resume = ptrace_resume_ck_syscall;
 
                ret = UTRACE_STOP;
        }
@@ -234,6 +237,7 @@ static u32 ptrace_report_clone(enum utra
                ev->ev_message = child->pid;
                ev->ev_options = PTRACE_O_TRACEVFORKDONE;
                ev->ev_code = (PTRACE_EVENT_VFORK_DONE << 8) | SIGTRAP;
+               ev->ev_resume = ptrace_resume_ck_syscall;
 
                ret = UTRACE_STOP;
        }

Reply via email to