aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2008-07-28 11:13:14 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2008-07-30 01:26:54 -0400
commit7d2a175b9bf6e9422bebe95130a3c79a25ff4602 (patch)
tree1684ca0a8af75d6f8e3602a7c70dec27ad08b896
parent1ac42ef844d7c0996f15c6f94f463ac94cb80818 (diff)
powerpc: Don't use the wrong thread_struct for ptrace get/set VSX regs
In PTRACE_GET/SETVSRREGS, we should be using the thread we are ptracing rather than current. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/kernel/ptrace.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 97d5dede8173..3635be61f899 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -375,7 +375,7 @@ static int vsr_get(struct task_struct *target, const struct user_regset *regset,
375 flush_vsx_to_thread(target); 375 flush_vsx_to_thread(target);
376 376
377 for (i = 0; i < 32 ; i++) 377 for (i = 0; i < 32 ; i++)
378 buf[i] = current->thread.fpr[i][TS_VSRLOWOFFSET]; 378 buf[i] = target->thread.fpr[i][TS_VSRLOWOFFSET];
379 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, 379 ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf,
380 buf, 0, 32 * sizeof(double)); 380 buf, 0, 32 * sizeof(double));
381 381
@@ -394,7 +394,7 @@ static int vsr_set(struct task_struct *target, const struct user_regset *regset,
394 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, 394 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
395 buf, 0, 32 * sizeof(double)); 395 buf, 0, 32 * sizeof(double));
396 for (i = 0; i < 32 ; i++) 396 for (i = 0; i < 32 ; i++)
397 current->thread.fpr[i][TS_VSRLOWOFFSET] = buf[i]; 397 target->thread.fpr[i][TS_VSRLOWOFFSET] = buf[i];
398 398
399 399
400 return ret; 400 return ret;