[POWERPC] 40x/Book-E: Save/restore volatile exception registers
authorKumar Gala <galak@kernel.crashing.org>
Wed, 30 Apr 2008 10:23:21 +0000 (05:23 -0500)
committerKumar Gala <galak@kernel.crashing.org>
Mon, 2 Jun 2008 19:56:35 +0000 (14:56 -0500)
commitfca622c5b21a259950a2964ceca7b6c2a23c849f
tree63e8faa227230542a7f9cc17050e42ffebd9f64f
parent369e757b65d4a5e49bae7cfaf671e784f891cfbe
[POWERPC] 40x/Book-E: Save/restore volatile exception registers

On machines with more than one exception level any system register that
might be modified by the "normal" exception level needs to be saved and
restored on taking a higher level exception.  We already are saving
and restoring ESR and DEAR.

For critical level add SRR0/1.
For debug level add CSRR0/1 and SRR0/1.
For machine check level add DSRR0/1, CSRR0/1, and SRR0/1.

On FSL Book-E parts we always save/restore the MAS registers for critical,
debug, and machine check level exceptions.  On 44x we always save/restore
the MMUCR.

Additionally, we save and restore the ksp_limit since we have to adjust it
for each exception level.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Acked-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/entry_32.S
arch/powerpc/kernel/head_40x.S
arch/powerpc/kernel/head_booke.h