powerpc/85xx: Add machine check handler to fix PCIe erratum on mpc85xx
A PCIe erratum of mpc85xx may causes a core hang when a link of PCIe goes down. when the link goes down, Non-posted transactions issued via the ATMU requiring completion result in an instruction stall. At the same time a machine-check exception is generated to the core to allow further processing by the handler. We implements the handler which skips the instruction caused the stall. This patch depends on patch: powerpc/85xx: Add platform_device declaration to fsl_pci.h Signed-off-by: Zhao Chenhui <b35336@freescale.com> Signed-off-by: Li Yang <leoli@freescale.com> Signed-off-by: Liu Shuo <soniccat.liu@gmail.com> Signed-off-by: Jia Hongtao <hongtao.jia@freescale.com> Signed-off-by: Scott Wood <scottwood@freescale.com>
This commit is contained in:

zatwierdzone przez
Scott Wood

rodzic
9123c5ed45
commit
4e0e3435b5
@@ -62,6 +62,7 @@
|
||||
#include <asm/switch_to.h>
|
||||
#include <asm/tm.h>
|
||||
#include <asm/debug.h>
|
||||
#include <sysdev/fsl_pci.h>
|
||||
|
||||
#if defined(CONFIG_DEBUGGER) || defined(CONFIG_KEXEC)
|
||||
int (*__debugger)(struct pt_regs *regs) __read_mostly;
|
||||
@@ -567,6 +568,8 @@ int machine_check_e500(struct pt_regs *regs)
|
||||
if (reason & MCSR_BUS_RBERR) {
|
||||
if (fsl_rio_mcheck_exception(regs))
|
||||
return 1;
|
||||
if (fsl_pci_mcheck_exception(regs))
|
||||
return 1;
|
||||
}
|
||||
|
||||
printk("Machine check in kernel mode.\n");
|
||||
|
Reference in New Issue
Block a user