]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - arch/ia64/kernel/ptrace.c
[IA64] arch_ptrace() cleanup
[net-next-2.6.git] / arch / ia64 / kernel / ptrace.c
index f10c8b40dd3f821a8037c32e0cdf38f8d3d67fad..7e0d7dcac1a91768d7fb2e54965865dbcfe760b6 100644 (file)
@@ -1491,88 +1491,60 @@ user_disable_single_step (struct task_struct *child)
 void
 ptrace_disable (struct task_struct *child)
 {
-       struct ia64_psr *child_psr = ia64_psr(task_pt_regs(child));
-
-       /* make sure the single step/taken-branch trap bits are not set: */
-       clear_tsk_thread_flag(child, TIF_SINGLESTEP);
-       child_psr->ss = 0;
-       child_psr->tb = 0;
+       user_disable_single_step(child);
 }
 
 long
 arch_ptrace (struct task_struct *child, long request, long addr, long data)
 {
-       struct pt_regs *pt;
-       struct switch_stack *sw;
-       long ret;
-
-       pt = task_pt_regs(child);
-       sw = (struct switch_stack *) (child->thread.ksp + 16);
-
        switch (request) {
-             case PTRACE_PEEKTEXT:
-             case PTRACE_PEEKDATA:
+       case PTRACE_PEEKTEXT:
+       case PTRACE_PEEKDATA:
                /* read word at location addr */
                if (access_process_vm(child, addr, &data, sizeof(data), 0)
-                   != sizeof(data)) {
-                       ret = -EIO;
-                       goto out_tsk;
-               }
-               ret = data;
-               /* ensure "ret" is not mistaken as an error code */
+                   != sizeof(data))
+                       return -EIO;
+               /* ensure return value is not mistaken for error code */
                force_successful_syscall_return();
-               goto out_tsk;
+               return data;
 
        /* PTRACE_POKETEXT and PTRACE_POKEDATA is handled
         * by the generic ptrace_request().
         */
 
-             case PTRACE_PEEKUSR:
+       case PTRACE_PEEKUSR:
                /* read the word at addr in the USER area */
-               if (access_uarea(child, addr, &data, 0) < 0) {
-                       ret = -EIO;
-                       goto out_tsk;
-               }
-               ret = data;
-               /* ensure "ret" is not mistaken as an error code */
+               if (access_uarea(child, addr, &data, 0) < 0)
+                       return -EIO;
+               /* ensure return value is not mistaken for error code */
                force_successful_syscall_return();
-               goto out_tsk;
+               return data;
 
-             case PTRACE_POKEUSR:
+       case PTRACE_POKEUSR:
                /* write the word at addr in the USER area */
-               if (access_uarea(child, addr, &data, 1) < 0) {
-                       ret = -EIO;
-                       goto out_tsk;
-               }
-               ret = 0;
-               goto out_tsk;
+               if (access_uarea(child, addr, &data, 1) < 0)
+                       return -EIO;
+               return 0;
 
-             case PTRACE_OLD_GETSIGINFO:
+       case PTRACE_OLD_GETSIGINFO:
                /* for backwards-compatibility */
-               ret = ptrace_request(child, PTRACE_GETSIGINFO, addr, data);
-               goto out_tsk;
+               return ptrace_request(child, PTRACE_GETSIGINFO, addr, data);
 
-             case PTRACE_OLD_SETSIGINFO:
+       case PTRACE_OLD_SETSIGINFO:
                /* for backwards-compatibility */
-               ret = ptrace_request(child, PTRACE_SETSIGINFO, addr, data);
-               goto out_tsk;
-
-             case PTRACE_GETREGS:
-               ret = ptrace_getregs(child,
-                                    (struct pt_all_user_regs __user *) data);
-               goto out_tsk;
-
-             case PTRACE_SETREGS:
-               ret = ptrace_setregs(child,
-                                    (struct pt_all_user_regs __user *) data);
-               goto out_tsk;
-
-             default:
-               ret = ptrace_request(child, request, addr, data);
-               goto out_tsk;
+               return ptrace_request(child, PTRACE_SETSIGINFO, addr, data);
+
+       case PTRACE_GETREGS:
+               return ptrace_getregs(child,
+                                     (struct pt_all_user_regs __user *) data);
+
+       case PTRACE_SETREGS:
+               return ptrace_setregs(child,
+                                     (struct pt_all_user_regs __user *) data);
+
+       default:
+               return ptrace_request(child, request, addr, data);
        }
-  out_tsk:
-       return ret;
 }