From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Subject: [PATCH] PCI: iproc: Ignore ARM core aborts when running on bcma bus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Northstar devices have host bridges that forward errors to the ARM core. These errors happen during PCI bus probing (device enumeration) and are expected. There is no reason for them to cause a die() so this patch adds a handler silencing them. Signed-off-by: Rafał Miłecki --- --- a/drivers/pci/host/pcie-iproc-bcma.c +++ b/drivers/pci/host/pcie-iproc-bcma.c @@ -40,6 +40,15 @@ static int iproc_pcie_bcma_map_irq(const return bcma_core_irq(bdev, 5); } +static int iproc_pcie_bcma_abort_handler(unsigned long addr, unsigned int fsr, + struct pt_regs *regs) +{ + if (fsr == 0x1406) + return 0; + + return 1; +} + static int iproc_pcie_bcma_probe(struct bcma_device *bdev) { struct iproc_pcie *pcie; @@ -65,6 +74,9 @@ static int iproc_pcie_bcma_probe(struct pcie->map_irq = iproc_pcie_bcma_map_irq; + hook_fault_code(16 + 6, iproc_pcie_bcma_abort_handler, SIGBUS, BUS_OBJERR, + "imprecise external abort"); + ret = iproc_pcie_setup(pcie, &res); if (ret) dev_err(pcie->dev, "PCIe controller setup failed\n");