diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 08:38:30 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-30 08:38:30 -0700 |
commit | d67c6f869c0a7f275689855161c93d714197e052 (patch) | |
tree | 17024af84087d216c62144d21a41beb74eca80dc /arch/s390/kernel/ptrace.c | |
parent | ec31b2124158f60c515ed84bd5e40db1a883c7b6 (diff) | |
parent | 1175cdc670f2d4197b033f823b32435031a6daa8 (diff) |
Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
[S390] Update default configuration.
[S390] use generic sys_ptrace
[S390] Remove self ptrace IEEE_IP hack.
[S390] Convert to SPARSEMEM & SPARSEMEM_VMEMMAP
[S390] System z large page support.
[S390] Convert machine feature detection code to C.
[S390] vmemmap: use clear_table to initialise page tables.
[S390] Move stfl to system.h and delete duplicated version.
[S390] uaccess_mvcos: #ifdef config dependent code.
[S390] cpu topology: Fix possible deadlock.
[S390] Add topology_core_siblings to topology.h
[S390] cio: Make isc handling more robust.
[S390] remove -traditional
[S390] Automatically detect added cpus.
[S390] smp: Fix locking order.
[S390] Add missing ifndef/define to include/asm-s390/sysinfo.h.
[S390] Move show_regs to traps.c.
[S390] cio: Use strict_strtoul() for attributes.
Diffstat (limited to 'arch/s390/kernel/ptrace.c')
-rw-r--r-- | arch/s390/kernel/ptrace.c | 57 |
1 files changed, 1 insertions, 56 deletions
diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c index 58a06429698..7f427016374 100644 --- a/arch/s390/kernel/ptrace.c +++ b/arch/s390/kernel/ptrace.c @@ -607,38 +607,8 @@ do_ptrace_emu31(struct task_struct *child, long request, long addr, long data) } #endif -#define PT32_IEEE_IP 0x13c - -static int -do_ptrace(struct task_struct *child, long request, long addr, long data) +long arch_ptrace(struct task_struct *child, long request, long addr, long data) { - int ret; - - if (request == PTRACE_ATTACH) - return ptrace_attach(child); - - /* - * Special cases to get/store the ieee instructions pointer. - */ - if (child == current) { - if (request == PTRACE_PEEKUSR && addr == PT_IEEE_IP) - return peek_user(child, addr, data); - if (request == PTRACE_POKEUSR && addr == PT_IEEE_IP) - return poke_user(child, addr, data); -#ifdef CONFIG_COMPAT - if (request == PTRACE_PEEKUSR && - addr == PT32_IEEE_IP && test_thread_flag(TIF_31BIT)) - return peek_user_emu31(child, addr, data); - if (request == PTRACE_POKEUSR && - addr == PT32_IEEE_IP && test_thread_flag(TIF_31BIT)) - return poke_user_emu31(child, addr, data); -#endif - } - - ret = ptrace_check_attach(child, request == PTRACE_KILL); - if (ret < 0) - return ret; - switch (request) { case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */ @@ -693,31 +663,6 @@ do_ptrace(struct task_struct *child, long request, long addr, long data) return -EIO; } -asmlinkage long -sys_ptrace(long request, long pid, long addr, long data) -{ - struct task_struct *child; - int ret; - - lock_kernel(); - if (request == PTRACE_TRACEME) { - ret = ptrace_traceme(); - goto out; - } - - child = ptrace_get_task_struct(pid); - if (IS_ERR(child)) { - ret = PTR_ERR(child); - goto out; - } - - ret = do_ptrace(child, request, addr, data); - put_task_struct(child); -out: - unlock_kernel(); - return ret; -} - asmlinkage void syscall_trace(struct pt_regs *regs, int entryexit) { |