From 74ac3d6549e7a7b986ebfb6d6a30537966894edd Mon Sep 17 00:00:00 2001 From: Andi Kleen Date: Wed, 17 Oct 2007 18:04:34 +0200 Subject: [PATCH] --- yaml --- r: 70955 b: refs/heads/master c: 2f62c94176af875f22ecd01887a550d5d48092fc h: refs/heads/master i: 70953: 77bd2a21d10d4359372f90f2ac248d2090ee811c 70951: 22630e0c26a58bbd00aa57e9f33ef991f0741ec2 v: v3 --- [refs] | 2 +- trunk/arch/x86/ia32/ptrace32.c | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 031aa2e576b6..857f3e873ce8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f68fd5f480248ca49e20e30a8e2387bc54694580 +refs/heads/master: 2f62c94176af875f22ecd01887a550d5d48092fc diff --git a/trunk/arch/x86/ia32/ptrace32.c b/trunk/arch/x86/ia32/ptrace32.c index 4a233ad6269c..f52770ef0ee3 100644 --- a/trunk/arch/x86/ia32/ptrace32.c +++ b/trunk/arch/x86/ia32/ptrace32.c @@ -228,6 +228,8 @@ static long ptrace32_siginfo(unsigned request, u32 pid, u32 addr, u32 data) return ret; } +#define COMPAT_GDT_ENTRY_TLS_MIN 6 + asmlinkage long sys32_ptrace(long request, u32 pid, u32 addr, u32 data) { struct task_struct *child; @@ -246,8 +248,6 @@ asmlinkage long sys32_ptrace(long request, u32 pid, u32 addr, u32 data) case PTRACE_SYSCALL: case PTRACE_OLDSETOPTIONS: case PTRACE_SETOPTIONS: - case PTRACE_SET_THREAD_AREA: - case PTRACE_GET_THREAD_AREA: return sys_ptrace(request, pid, addr, data); default: @@ -271,6 +271,12 @@ asmlinkage long sys32_ptrace(long request, u32 pid, u32 addr, u32 data) case PTRACE_SETSIGINFO: case PTRACE_GETSIGINFO: return ptrace32_siginfo(request, pid, addr, data); + + case PTRACE_SET_THREAD_AREA: + case PTRACE_GET_THREAD_AREA: + return sys_ptrace(request, pid, + addr + GDT_ENTRY_TLS_MIN - COMPAT_GDT_ENTRY_TLS_MIN, + data); } child = ptrace_get_task_struct(pid);