sparc64: Do not clobber %g2 in xcall_fetch_glob_regs().
commit1c1cb5756a8d296bbc33fc844f97048dc09ee172
authorDavid S. Miller <davem@davemloft.net>
Thu, 10 May 2012 18:00:46 +0000 (10 11:00 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 21 May 2012 16:40:01 +0000 (21 09:40 -0700)
treef2b9110ef1391ab7923c17a41c7b7024d98a8b40
parent6f6f21eceec3a60d2066bb3b5e31dc14f9168fa7
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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/sparc/kernel/central.c
arch/sparc/mm/ultra.S