vserver 1.9.5.x5
[linux-2.6.git] / arch / ppc64 / kernel / ptrace.c
index 9c3d2f5..93d073f 100644 (file)
@@ -184,7 +184,7 @@ int sys_ptrace(long request, long pid, long addr, long data)
         */
        case PTRACE_KILL: {
                ret = 0;
-               if (child->state == TASK_ZOMBIE)        /* already dead */
+               if (child->exit_state == EXIT_ZOMBIE)   /* already dead */
                        break;
                child->exit_code = SIGKILL;
                /* make sure the single step bit is not set. */
@@ -315,12 +315,13 @@ void do_syscall_trace_enter(struct pt_regs *regs)
                do_syscall_trace();
 }
 
-void do_syscall_trace_leave(void)
+void do_syscall_trace_leave(struct pt_regs *regs)
 {
        if (unlikely(current->audit_context))
-               audit_syscall_exit(current, 0); /* FIXME: pass pt_regs */
+               audit_syscall_exit(current, regs->result);
 
-       if (test_thread_flag(TIF_SYSCALL_TRACE)
+       if ((test_thread_flag(TIF_SYSCALL_TRACE)
+            || test_thread_flag(TIF_SINGLESTEP))
            && (current->ptrace & PT_PTRACED))
                do_syscall_trace();
 }