xtensa: use generic ptrace_resume code
[safe/jmp/linux-2.6] / arch / xtensa / kernel / ptrace.c
index 9486882..9d4e1ce 100644 (file)
 #include <asm/elf.h>
 #include <asm/coprocessor.h>
 
+
+void user_enable_single_step(struct task_struct *child)
+{
+       child->ptrace |= PT_SINGLESTEP;
+}
+
+void user_disable_single_step(struct task_struct *child)
+{
+       child->ptrace &= ~PT_SINGLESTEP;
+}
+
 /*
  * Called by kernel/ptrace.c when detaching to disable single stepping.
  */
@@ -268,51 +279,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
                ret = ptrace_pokeusr(child, addr, data);
                break;
 
-       /* continue and stop at next (return from) syscall */
-
-       case PTRACE_SYSCALL:
-       case PTRACE_CONT: /* restart after signal. */
-       {
-               ret = -EIO;
-               if (!valid_signal(data))
-                       break;
-               if (request == PTRACE_SYSCALL)
-                       set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-               else
-                       clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-               child->exit_code = data;
-               /* Make sure the single step bit is not set. */
-               child->ptrace &= ~PT_SINGLESTEP;
-               wake_up_process(child);
-               ret = 0;
-               break;
-       }
-
-       /*
-        * make the child exit.  Best I can do is send it a sigkill.
-        * perhaps it should be put in the status that it wants to
-        * exit.
-        */
-       case PTRACE_KILL:
-               ret = 0;
-               if (child->exit_state == EXIT_ZOMBIE)   /* already dead */
-                       break;
-               child->exit_code = SIGKILL;
-               child->ptrace &= ~PT_SINGLESTEP;
-               wake_up_process(child);
-               break;
-
-       case PTRACE_SINGLESTEP:
-               ret = -EIO;
-               if (!valid_signal(data))
-                       break;
-               clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
-               child->ptrace |= PT_SINGLESTEP;
-               child->exit_code = data;
-               wake_up_process(child);
-               ret = 0;
-               break;
-
        case PTRACE_GETREGS:
                ret = ptrace_getregs(child, (void __user *) data);
                break;