Skip to contentSkip to conversation

powerpc: Fix reading/writing FPRs on 32 bit apps with ptrace on 64 bit kernels

PATCH New Michael Neuling 1 participant 1 message Mar 24, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 powerpc: Fix reading/writing FPRs on 32 bit apps with ptrace on 64 bit kernels

Fix the calculation for offsetting into the FPRs when ptracing a 32 bit app on 64 bit kernels.

---
benh: it'd be nice if this went back in to 27,28 & 29

Also, I vote we kill ptracing 64 bit apps from 32 apps as it's completely broken and no one has ever noticed.

 arch/powerpc/kernel/ptrace32.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/powerpc/kernel/ptrace32.c +1 -1
Index: linux-2.6-ozlabs/arch/powerpc/kernel/ptrace32.c
===================================================================
@@ -67,7 +67,7 @@ static long compat_ptrace_old(struct tas
 /* Macros to workout the correct index for the FPR in the thread struct */
 #define FPRNUMBER(i) (((i) - PT_FPR0) >> 1)
 #define FPRHALF(i) (((i) - PT_FPR0) & 1)
-#define FPRINDEX(i) TS_FPRWIDTH * FPRNUMBER(i) + FPRHALF(i)
+#define FPRINDEX(i) TS_FPRWIDTH * FPRNUMBER(i) * 2 + FPRHALF(i)
 
 long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
 			compat_ulong_t caddr, compat_ulong_t cdata)