123456789101112131415161718192021222324252627282930313233343536373839404142 |
- From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
- 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 <zajec5@gmail.com>
- ---
- --- 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");
|