summaryrefslogtreecommitdiff
path: root/arch/powerpc/sysdev/fsl_pci.h
diff options
context:
space:
mode:
authorJia Hongtao <hongtao.jia@freescale.com>2013-04-18 09:51:15 (GMT)
committerFleming Andrew-AFLEMING <AFLEMING@freescale.com>2013-04-18 21:50:34 (GMT)
commitbe3f3a93ea18a4e8db382eb171e02b0349d071f2 (patch)
treeafbc9df4964e2e2f376639463cd0f5ad4cb83526 /arch/powerpc/sysdev/fsl_pci.h
parent51eff26d07e06cb4bb3bad3be3344be2c7e5dc14 (diff)
downloadlinux-fsl-qoriq-be3f3a93ea18a4e8db382eb171e02b0349d071f2.tar.xz
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> Change-Id: Ie2d8e5db75b242a9687170bc9f7aac53698192c7 Reviewed-on: http://git.am.freescale.net:8181/1525 Reviewed-by: Wood Scott-B07421 <scottwood@freescale.com> Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com> Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
Diffstat (limited to 'arch/powerpc/sysdev/fsl_pci.h')
-rw-r--r--arch/powerpc/sysdev/fsl_pci.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/fsl_pci.h b/arch/powerpc/sysdev/fsl_pci.h
index 4854175..a288369 100644
--- a/arch/powerpc/sysdev/fsl_pci.h
+++ b/arch/powerpc/sysdev/fsl_pci.h
@@ -165,5 +165,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__ */