[PATCH v2 2/4] fsl_rio: fix machine check exception for e500mc
Li Yang
leoli at freescale.com
Fri Jun 18 16:24:21 EST 2010
The original code only covers e500 v1/v2.
Signed-off-by: Li Yang <leoli at freescale.com>
---
arch/powerpc/sysdev/fsl_rio.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/arch/powerpc/sysdev/fsl_rio.c b/arch/powerpc/sysdev/fsl_rio.c
index f908ba6..954a754 100644
--- a/arch/powerpc/sysdev/fsl_rio.c
+++ b/arch/powerpc/sysdev/fsl_rio.c
@@ -248,7 +248,8 @@ static int fsl_rio_mcheck_exception(struct pt_regs *regs)
const struct exception_table_entry *entry = NULL;
unsigned long reason = mfspr(SPRN_MCSR);
- if (reason & MCSR_BUS_RBERR) {
+ /* covers both e500v1/v2 and e500mc */
+ if (reason & (MCSR_BUS_RBERR | MCSR_LD)) {
reason = in_be32((u32 *)(rio_regs_win + RIO_LTLEDCSR));
if (reason & (RIO_LTLEDCSR_IER | RIO_LTLEDCSR_PRT)) {
/* Check if we are prepared to handle this fault */
--
1.6.4
More information about the Linuxppc-dev
mailing list