diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-04-30 07:38:49 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-04-30 07:38:48 -0400 |
commit | 941af343e2e25ff7afce43a3c7e2922643b8cd48 (patch) | |
tree | 49f9e2f8e38e70af8f3876f833f8dc1c3ab923a0 /arch/s390/kernel | |
parent | 613e1def6b52c399a8b72a5e11bc2e57d2546fb8 (diff) |
[S390] use generic sys_ptrace
After the PT_IEEE_IP hack has been removed s390 can now use
the common code sys_ptrace function.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel')
-rw-r--r-- | arch/s390/kernel/ptrace.c | 37 |
1 files changed, 1 insertions, 36 deletions
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 9dbaef44e8ec..7f4270163744 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c | |||
@@ -607,18 +607,8 @@ do_ptrace_emu31(struct task_struct *child, long request, long addr, long data) | |||
607 | } | 607 | } |
608 | #endif | 608 | #endif |
609 | 609 | ||
610 | static int | 610 | long arch_ptrace(struct task_struct *child, long request, long addr, long data) |
611 | do_ptrace(struct task_struct *child, long request, long addr, long data) | ||
612 | { | 611 | { |
613 | int ret; | ||
614 | |||
615 | if (request == PTRACE_ATTACH) | ||
616 | return ptrace_attach(child); | ||
617 | |||
618 | ret = ptrace_check_attach(child, request == PTRACE_KILL); | ||
619 | if (ret < 0) | ||
620 | return ret; | ||
621 | |||
622 | switch (request) { | 612 | switch (request) { |
623 | case PTRACE_SYSCALL: | 613 | case PTRACE_SYSCALL: |
624 | /* continue and stop at next (return from) syscall */ | 614 | /* continue and stop at next (return from) syscall */ |
@@ -673,31 +663,6 @@ do_ptrace(struct task_struct *child, long request, long addr, long data) | |||
673 | return -EIO; | 663 | return -EIO; |
674 | } | 664 | } |
675 | 665 | ||
676 | asmlinkage long | ||
677 | sys_ptrace(long request, long pid, long addr, long data) | ||
678 | { | ||
679 | struct task_struct *child; | ||
680 | int ret; | ||
681 | |||
682 | lock_kernel(); | ||
683 | if (request == PTRACE_TRACEME) { | ||
684 | ret = ptrace_traceme(); | ||
685 | goto out; | ||
686 | } | ||
687 | |||
688 | child = ptrace_get_task_struct(pid); | ||
689 | if (IS_ERR(child)) { | ||
690 | ret = PTR_ERR(child); | ||
691 | goto out; | ||
692 | } | ||
693 | |||
694 | ret = do_ptrace(child, request, addr, data); | ||
695 | put_task_struct(child); | ||
696 | out: | ||
697 | unlock_kernel(); | ||
698 | return ret; | ||
699 | } | ||
700 | |||
701 | asmlinkage void | 666 | asmlinkage void |
702 | syscall_trace(struct pt_regs *regs, int entryexit) | 667 | syscall_trace(struct pt_regs *regs, int entryexit) |
703 | { | 668 | { |