[patch 30/60] sparc64: Do not clobber %g7 in setcontext() trap.

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Greg KH
Date: Monday, August 18, 2008 - 11:44 am

2.6.26-stable review patch.  If anyone has any objections, please let us know.

------------------
From: David S. Miller <davem@davemloft.net>

[ Upstream commit 0a4949c4414af2eb91414bcd8e2a8ac3706f7dde ]

That's the userland thread register, so we should never try to change
it like this.

Based upon glibc bug nptl/6577 and suggestions by Jakub Jelinek.

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 arch/sparc64/kernel/signal.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/arch/sparc64/kernel/signal.c
+++ b/arch/sparc64/kernel/signal.c
@@ -2,7 +2,7 @@
  *  arch/sparc64/kernel/signal.c
  *
  *  Copyright (C) 1991, 1992  Linus Torvalds
- *  Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
+ *  Copyright (C) 1995, 2008 David S. Miller (davem@davemloft.net)
  *  Copyright (C) 1996 Miguel de Icaza (miguel@nuclecu.unam.mx)
  *  Copyright (C) 1997 Eddie C. Dost   (ecd@skynet.be)
  *  Copyright (C) 1997,1998 Jakub Jelinek   (jj@sunsite.mff.cuni.cz)
@@ -89,7 +89,9 @@ asmlinkage void sparc64_set_context(stru
 	err |= __get_user(regs->u_regs[UREG_G4], (&(*grp)[MC_G4]));
 	err |= __get_user(regs->u_regs[UREG_G5], (&(*grp)[MC_G5]));
 	err |= __get_user(regs->u_regs[UREG_G6], (&(*grp)[MC_G6]));
-	err |= __get_user(regs->u_regs[UREG_G7], (&(*grp)[MC_G7]));
+
+	/* Skip %g7 as that's the thread register in userspace.  */
+
 	err |= __get_user(regs->u_regs[UREG_I0], (&(*grp)[MC_O0]));
 	err |= __get_user(regs->u_regs[UREG_I1], (&(*grp)[MC_O1]));
 	err |= __get_user(regs->u_regs[UREG_I2], (&(*grp)[MC_O2]));

-- 
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch 00/60] 2.6.26-stable review, Greg KH, (Mon Aug 18, 11:40 am)
[patch 01/60] mlock() fix return values, Greg KH, (Mon Aug 18, 11:41 am)
[patch 02/60] SCSI: ses: fix VPD inquiry overrun, Greg KH, (Mon Aug 18, 11:41 am)
[patch 06/60] vt8623fb: fix kernel oops, Greg KH, (Mon Aug 18, 11:41 am)
[patch 11/60] radeonfb: fix accel engine hangs, Greg KH, (Mon Aug 18, 11:42 am)
[patch 26/60] random32: seeding improvement, Greg KH, (Mon Aug 18, 11:43 am)
[patch 28/60] sparc64: FUTEX_OP_ANDN fix, Greg KH, (Mon Aug 18, 11:44 am)
[patch 30/60] sparc64: Do not clobber %g7 in setcontext() ..., Greg KH, (Mon Aug 18, 11:44 am)
[patch 41/60] x86: amd opteron TOM2 mask val fix, Greg KH, (Mon Aug 18, 11:44 am)
[patch 44/60] radeon: misc corrections, Greg KH, (Mon Aug 18, 11:45 am)
[patch 45/60] cs5520: add enablebits checking, Greg KH, (Mon Aug 18, 11:45 am)
[patch 50/60] sparc64: Implement IRQ stacks., Greg KH, (Mon Aug 18, 11:45 am)
[patch 52/60] x86: fix spin_is_contended(), Greg KH, (Mon Aug 18, 11:45 am)