powerpc: Remove use of a second scratch SPRG in STAB code
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 16 Jul 2009 19:36:57 +0000 (19:36 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 20 Aug 2009 00:12:28 +0000 (10:12 +1000)
commitc5a8c0c99f67ae8a784faafbaaea1529825796e2
tree731b07d0ac0414dbeac5ce940fe59a04a8d63c3f
parentee43eb788b3a06425fffb912677e2e1c8b00dd3b
powerpc: Remove use of a second scratch SPRG in STAB code

The STAB code used on Power3 and RS/64 uses a second scratch SPRG to
save a GPR in order to decide whether to go to do_stab_bolted_* or
to handle a normal data access exception.

This prevents our scheme of freeing SPRG3 which is user visible for
user uses since we cannot use SPRG0 which, on RS/64, seems to be
read-only for supervisor mode (like POWER4).

This reworks the STAB exception entry to use the PACA as temporary
storage instead.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/include/asm/exception-64s.h
arch/powerpc/include/asm/reg.h
arch/powerpc/kernel/exceptions-64s.S
arch/powerpc/platforms/iseries/exception.S