From: David S. Miller Date: Tue, 8 Apr 2008 05:24:24 +0000 (-0700) Subject: SPARC64: Fix FPU saving in 64-bit signal handling. X-Git-Tag: v2.6.24.5~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1ff9e6f47768a807d8c283290e5a4f8b66376e46;p=thirdparty%2Fkernel%2Fstable.git SPARC64: Fix FPU saving in 64-bit signal handling. Upstream commit: 7c3cce978e4f933ac13758ec5d2554fc8d0927d2 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 Signed-off-by: Chris Wright --- diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c index fb13775b36823..48afa08ca1aaa 100644 --- a/arch/sparc64/kernel/signal.c +++ b/arch/sparc64/kernel/signal.c @@ -354,7 +354,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;