diff options
author | Hongtao Jia <hongtao.jia@freescale.com> | 2013-04-28 13:20:08 +0800 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2013-07-30 15:50:07 -0500 |
commit | 4e0e3435b50285eafe5898124ce02f7577f6803a (patch) | |
tree | 1cb33868e383e1e94e339edfbcdf5206387f2667 /arch/powerpc/sysdev/fsl_pci.h | |
parent | 9123c5ed45a583311d8373e99f5e3ee4c0b4306b (diff) | |
download | linux-4e0e3435b50285eafe5898124ce02f7577f6803a.tar.gz linux-4e0e3435b50285eafe5898124ce02f7577f6803a.tar.bz2 linux-4e0e3435b50285eafe5898124ce02f7577f6803a.zip |
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>
Diffstat (limited to 'arch/powerpc/sysdev/fsl_pci.h')
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/fsl_pci.h b/arch/powerpc/sysdev/fsl_pci.h index 72b5625330e2..defc422a375f 100644 --- a/arch/powerpc/sysdev/fsl_pci.h +++ b/arch/powerpc/sysdev/fsl_pci.h @@ -126,5 +126,11 @@ static inline int mpc85xx_pci_err_probe(struct platform_device *op) } #endif +#ifdef CONFIG_FSL_PCI +extern int fsl_pci_mcheck_exception(struct pt_regs *); +#else +static inline int fsl_pci_mcheck_exception(struct pt_regs *regs) {return 0; } +#endif + #endif /* __POWERPC_FSL_PCI_H */ #endif /* __KERNEL__ */ |