This is a note to let you know that I've just added the patch titled

    sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().

to the 3.0-stable tree which can be found at:
    
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     sparc64-do-not-clobber-g2-in-xcall_fetch_glob_regs.patch
and it can be found in the queue-3.0 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <[email protected]> know about it.


>From a5a737e090e25981e99d69f01400e3a80356581c Mon Sep 17 00:00:00 2001
From: "David S. Miller" <[email protected]>
Date: Thu, 10 May 2012 11:00:46 -0700
Subject: sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().

From: "David S. Miller" <[email protected]>

[ Upstream commit a5a737e090e25981e99d69f01400e3a80356581c ]

%g2 is meant to hold the CPUID number throughout this routine, since
at the very beginning, and at the very end, we use %g2 to calculate
indexes into per-cpu arrays.

However we erroneously clobber it in order to hold the %cwp register
value mid-stream.

Fix this code to use %g3 for the %cwp read and related calulcations
instead.

Reported-by: Meelis Roos <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
---
 arch/sparc/kernel/central.c |    2 +-
 arch/sparc/mm/ultra.S       |    6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

--- a/arch/sparc/kernel/central.c
+++ b/arch/sparc/kernel/central.c
@@ -268,4 +268,4 @@ static int __init sunfire_init(void)
        return 0;
 }
 
-subsys_initcall(sunfire_init);
+fs_initcall(sunfire_init);
--- a/arch/sparc/mm/ultra.S
+++ b/arch/sparc/mm/ultra.S
@@ -495,11 +495,11 @@ xcall_fetch_glob_regs:
        stx             %o7, [%g1 + GR_SNAP_O7]
        stx             %i7, [%g1 + GR_SNAP_I7]
        /* Don't try this at home kids... */
-       rdpr            %cwp, %g2
-       sub             %g2, 1, %g7
+       rdpr            %cwp, %g3
+       sub             %g3, 1, %g7
        wrpr            %g7, %cwp
        mov             %i7, %g7
-       wrpr            %g2, %cwp
+       wrpr            %g3, %cwp
        stx             %g7, [%g1 + GR_SNAP_RPC]
        sethi           %hi(trap_block), %g7
        or              %g7, %lo(trap_block), %g7


Patches currently in stable-queue which might be from [email protected] are

queue-3.0/smsc95xx-mark-link-down-on-startup-and-let-phy-interrupt.patch
queue-3.0/netem-fix-possible-skb-leak.patch
queue-3.0/sungem-fix-wakeonlan.patch
queue-3.0/asix-fix-tx-transfer-padding-for-full-speed-usb.patch
queue-3.0/usbnet-fix-skb-traversing-races-during-unlink-v2.patch
queue-3.0/sparc64-do-not-clobber-g2-in-xcall_fetch_glob_regs.patch
queue-3.0/tcp-change-tcp_adv_win_scale-and-tcp_rmem.patch
queue-3.0/net-in-unregister_netdevice_notifier-unregister-the-netdevices.patch
queue-3.0/tg3-avoid-panic-from-reserved-statblk-field-access.patch
queue-3.0/sky2-propogate-rx-hash-when-packet-is-copied.patch
queue-3.0/sky2-fix-receive-length-error-in-mixed-non-vlan-vlan-traffic.patch
queue-3.0/net-l2tp-unlock-socket-lock-before-returning-from-l2tp_ip_sendmsg.patch
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to