diff options
author | Alexey Dobriyan | 2007-07-17 13:03:44 +0200 |
---|---|---|
committer | Linus Torvalds | 2007-07-17 19:23:03 +0200 |
commit | f284ce7269031947326bac6bb19a977705276222 (patch) | |
tree | 8b145d42d4da182fb185dacc53b24ca7a2546114 /kernel/ptrace.c | |
parent | PTRACE_PEEKDATA consolidation (diff) | |
download | kernel-qcow2-linux-f284ce7269031947326bac6bb19a977705276222.tar.gz kernel-qcow2-linux-f284ce7269031947326bac6bb19a977705276222.tar.xz kernel-qcow2-linux-f284ce7269031947326bac6bb19a977705276222.zip |
PTRACE_POKEDATA consolidation
Identical implementations of PTRACE_POKEDATA go into generic_ptrace_pokedata()
function.
AFAICS, fix bug on xtensa where successful PTRACE_POKEDATA will nevertheless
return EPERM.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: <linux-arch@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/ptrace.c')
-rw-r--r-- | kernel/ptrace.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/ptrace.c b/kernel/ptrace.c index 1653d35419a1..4a1745f1dadf 100644 --- a/kernel/ptrace.c +++ b/kernel/ptrace.c @@ -501,3 +501,11 @@ int generic_ptrace_peekdata(struct task_struct *tsk, long addr, long data) return -EIO; return put_user(tmp, (unsigned long __user *)data); } + +int generic_ptrace_pokedata(struct task_struct *tsk, long addr, long data) +{ + int copied; + + copied = access_process_vm(tsk, addr, &data, sizeof(data), 1); + return (copied == sizeof(data)) ? 0 : -EIO; +} |