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;