summaryrefslogtreecommitdiff
path: root/arch/powerpc/include
diff options
context:
space:
mode:
authorScott Wood <scottwood@freescale.com>2014-03-10 22:29:38 (GMT)
committerJose Rivera <German.Rivera@freescale.com>2014-03-28 14:00:19 (GMT)
commita47e780996b3bcfc715f1dede33e9351fbc5316b (patch)
tree59e6dc8e17df635a23c13078209d35fabc961c98 /arch/powerpc/include
parent237ceb2db2b69f35db2f00891d1185b74a33bc8e (diff)
downloadlinux-fsl-qoriq-a47e780996b3bcfc715f1dede33e9351fbc5316b.tar.xz
powerpc/booke64: Critical and machine check exception support
Add special state saving for critical and machine check exceptions. Most of this code could be used to handle debug exceptions taken from kernel space, but actually doing so is outside the scope of this patch. The various critical and machine check exceptions now point to their real handlers, rather than hanging the kernel. Signed-off-by: Scott Wood <scottwood@freescale.com> Change-Id: Id3ef3d2c17b582508f36c10a4d0e96e540ca5284 Reviewed-on: http://git.am.freescale.net:8181/10269 Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com> Reviewed-by: Bharat Bhushan <Bharat.Bhushan@freescale.com> Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r--arch/powerpc/include/asm/paca.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/arch/powerpc/include/asm/paca.h b/arch/powerpc/include/asm/paca.h
index ead2d39..dfd3931 100644
--- a/arch/powerpc/include/asm/paca.h
+++ b/arch/powerpc/include/asm/paca.h
@@ -132,8 +132,11 @@ struct paca_struct {
#define TLB_PER_CORE_HAS_LOCK 1
uintptr_t tlb_per_core_ptr;
- /* We can have up to 3 levels of reentrancy in the TLB miss handler */
- u64 extlb[3][EX_TLB_SIZE / sizeof(u64)];
+ /*
+ * We can have up to 3 levels of reentrancy in the TLB miss handler,
+ * in each of four exception levels (normal, crit, mcheck, debug).
+ */
+ u64 extlb[12][EX_TLB_SIZE / sizeof(u64)];
u64 exmc[8]; /* used for machine checks */
u64 excrit[8]; /* used for crit interrupts */
u64 exdbg[8]; /* used for debug interrupts */