summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-04-03 15:07:24 -0700
committerDavid S. Miller <davem@davemloft.net>2008-04-03 15:07:24 -0700
commit7c3cce978e4f933ac13758ec5d2554fc8d0927d2 (patch)
tree81cb39729bcf86905d268dc85f1cae02d278ce6d /arch
parentc819914e0d5cc85cccf5fe7542fcb9586286bc28 (diff)
downloadlinux-stable-7c3cce978e4f933ac13758ec5d2554fc8d0927d2.tar.gz
linux-stable-7c3cce978e4f933ac13758ec5d2554fc8d0927d2.tar.bz2
linux-stable-7c3cce978e4f933ac13758ec5d2554fc8d0927d2.zip
[SPARC64]: Fix FPU saving in 64-bit signal handling.
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>
Diffstat (limited to 'arch')
-rw-r--r--arch/sparc64/kernel/signal.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/signal.c b/arch/sparc64/kernel/signal.c
index 94a9d64208ee..9d51956e8e2f 100644
--- a/arch/sparc64/kernel/signal.c
+++ b/arch/sparc64/kernel/signal.c
@@ -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;