diff options
author | David S. Miller <davem@davemloft.net> | 2012-05-10 11:00:46 -0700 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2012-05-20 22:56:42 +0100 |
commit | 8369f66fc249ab872a370b0dc849e9a47a9f4921 (patch) | |
tree | e453ab3cc785dc379fe02f4aededc41cd357954b /arch/sparc/kernel/central.c | |
parent | f6fa1ed89c2778e9755c9d1081bdb7cab38fbfb4 (diff) | |
download | linux-stable-8369f66fc249ab872a370b0dc849e9a47a9f4921.tar.gz linux-stable-8369f66fc249ab872a370b0dc849e9a47a9f4921.tar.bz2 linux-stable-8369f66fc249ab872a370b0dc849e9a47a9f4921.zip |
sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().
[ 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 <mroos@linux.ee>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'arch/sparc/kernel/central.c')
-rw-r--r-- | arch/sparc/kernel/central.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c index 38d48a59879c..9708851a8b9f 100644 --- a/arch/sparc/kernel/central.c +++ b/arch/sparc/kernel/central.c @@ -269,4 +269,4 @@ static int __init sunfire_init(void) return 0; } -subsys_initcall(sunfire_init); +fs_initcall(sunfire_init); |