[SPARC64]: Fix FPU saving in 64-bit signal handling.
authorDavid S. Miller <davem@davemloft.net>
Thu, 3 Apr 2008 22:07:24 +0000 (15:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Apr 2008 22:07:24 +0000 (15:07 -0700)
The calculation of the FPU reg save area pointer
was wrong.

Based upon an OOPS report from Tom Callaway.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/signal.c

index 94a9d64208eee17126fb2ef996ad07f3ece660fd..9d51956e8e2f6737057c99c3d5e01e31dc9a67a3 100644 (file)
@@ -357,7 +357,7 @@ static int invalid_frame_pointer(void __user *fp, int fplen)
 static inline int
 save_fpu_state(struct pt_regs *regs, __siginfo_fpu_t __user *fpu)
 {
-       unsigned long *fpregs = (unsigned long *)(regs+1);
+       unsigned long *fpregs = current_thread_info()->fpregs;
        unsigned long fprs;
        int err = 0;