summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kernel/exceptions-64e.S
diff options
context:
space:
mode:
authorMihai Caraman2012-09-06 04:49:44 +0200
committerBenjamin Herrenschmidt2012-09-07 01:48:49 +0200
commit0127262c01f0beb485f917c720d1d95d165dfdbf (patch)
tree8ea17c81f09dec7c6e8bfdc8f3288ec7cfa439c6 /arch/powerpc/kernel/exceptions-64e.S
parentpowerpc/booke64: Use SPRG0/3 scratch for bolted TLB miss & crit int (diff)
downloadkernel-qcow2-linux-0127262c01f0beb485f917c720d1d95d165dfdbf.tar.gz
kernel-qcow2-linux-0127262c01f0beb485f917c720d1d95d165dfdbf.tar.xz
kernel-qcow2-linux-0127262c01f0beb485f917c720d1d95d165dfdbf.zip
powerpc: Restore VDSO information on critical exception om BookE
Critical exception on 64-bit booke uses user-visible SPRG3 as scratch. Restore VDSO information in SPRG3 on exception prolog. Use a common sprg3 field in PACA for all powerpc64 architectures. Signed-off-by: Mihai Caraman <mihai.caraman@freescale.com> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/kernel/exceptions-64e.S')
-rw-r--r--arch/powerpc/kernel/exceptions-64e.S4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
index 7476b0ae09fb..87a82fbdf05a 100644
--- a/arch/powerpc/kernel/exceptions-64e.S
+++ b/arch/powerpc/kernel/exceptions-64e.S
@@ -110,7 +110,9 @@
#define PROLOG_STORE_RESTORE_SCRATCH_CRIT \
mfspr r10,SPRN_SPRG_CRIT_SCRATCH; /* get r13 */ \
- std r10,PACA_EXCRIT+EX_R13(r13)
+ std r10,PACA_EXCRIT+EX_R13(r13); \
+ ld r11,PACA_SPRG3(r13); \
+ mtspr SPRN_SPRG_CRIT_SCRATCH,r11;
/* Variants of the "addition" argument for the prolog
*/