Merge "lm96063 fan driver: Initialize "spinup" register to 50%"
diff --git a/arch/arm/mach-comcerto/pcie-c2000.c b/arch/arm/mach-comcerto/pcie-c2000.c
index e31d010..2e2bc04 100644
--- a/arch/arm/mach-comcerto/pcie-c2000.c
+++ b/arch/arm/mach-comcerto/pcie-c2000.c
@@ -20,6 +20,7 @@
#include <linux/kernel.h>
#include <linux/version.h>
+#include <linux/ratelimit.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/spinlock.h>
@@ -1882,6 +1883,16 @@
static int comcerto_pcie_abort_handler(unsigned long addr, unsigned int fsr,
struct pt_regs *regs)
{
+ static DEFINE_RATELIMIT_STATE(rs, 5 * HZ, 5);
+ if (__ratelimit(&rs)) {
+ pr_err("PCIe external abort detected at 0x%08lx\n", addr);
+ } else {
+ /*
+ * Things are getting out of control. Give up before we
+ * just freeze the CPU and can't report about it.
+ */
+ panic("PCIe: too many external aborts in a short time");
+ }
if (fsr & (1 << 10))
regs->ARM_pc += 4;
return 0;