Remove duplicate code and clean up goto's. Signed-off-by: Petr Tesarik <ptesarik@xxxxxxx> CC: Tony Luck <tony.luck@xxxxxxxxx> CC: Christoph Hellwig <hch@xxxxxxxxxxxxx> diff --git a/arch/ia64/kernel/ptrace.c b/arch/ia64/kernel/ptrace.c index f10c8b4..2477de8 100644 --- a/arch/ia64/kernel/ptrace.c +++ b/arch/ia64/kernel/ptrace.c @@ -1491,37 +1491,22 @@ user_disable_single_step (struct task_st 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: /* 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(). @@ -1529,50 +1514,37 @@ arch_ptrace (struct task_struct *child, 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: /* 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: /* 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: /* for backwards-compatibility */ - ret = ptrace_request(child, PTRACE_SETSIGINFO, addr, data); - goto out_tsk; + return ptrace_request(child, PTRACE_SETSIGINFO, addr, data); case PTRACE_GETREGS: - ret = ptrace_getregs(child, - (struct pt_all_user_regs __user *) data); - goto out_tsk; + return ptrace_getregs(child, + (struct pt_all_user_regs __user *) data); case PTRACE_SETREGS: - ret = ptrace_setregs(child, - (struct pt_all_user_regs __user *) data); - goto out_tsk; + return ptrace_setregs(child, + (struct pt_all_user_regs __user *) data); default: - ret = ptrace_request(child, request, addr, data); - goto out_tsk; + return ptrace_request(child, request, addr, data); } - out_tsk: - return ret; } - To unsubscribe from this list: send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |