From: Andi Kleen ptrace/access_process_vm was passing current to get_user_pages as task, but it should have been clearly the child task instead. This fixes the fault accounting in ptrace and the vsyscall debugging on x86-64 (it needs the correct task_struct to map the vsyscall pages) --- 25-akpm/kernel/ptrace.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN kernel/ptrace.c~ptrace-use-correct-task kernel/ptrace.c --- 25/kernel/ptrace.c~ptrace-use-correct-task Thu Mar 25 14:20:11 2004 +++ 25-akpm/kernel/ptrace.c Thu Mar 25 14:20:11 2004 @@ -168,7 +168,7 @@ int access_process_vm(struct task_struct int bytes, ret, offset; void *maddr; - ret = get_user_pages(current, mm, addr, 1, + ret = get_user_pages(tsk, mm, addr, 1, write, 1, &page, &vma); if (ret <= 0) break; _