On Tue, Jan 09, 2018 at 11:45:40AM -0800, Ray Jui wrote:
With the inbound DMA mapping supported added, the iProc PCIe driver
parses DT property "dma-ranges" through call to
"of_pci_dma_range_parser_init". In the case of BCMA, this results in a
NULL pointer deference due to a missing of_node.
Fix this by adding a guard in pcie-iproc-platform.c to only enable the
inbound DMA mapping logic when DT property "dma-ranges" is present
fixes: dd9d4e7498de3 ("PCI: iproc: Add inbound DMA mapping support")
s/fixes/Fixes >
Reported-by: RafaÅ MiÅecki <rafal@xxxxxxxxxx>
Signed-off-by: Ray Jui <ray.jui@xxxxxxxxxxxx>
Tested-by: RafaÅ MiÅecki <rafal@xxxxxxxxxx>
Cc: <stable@xxxxxxxxxxxxxxx> # 4.10+
---
drivers/pci/host/pcie-iproc-platform.c | 3 +++
drivers/pci/host/pcie-iproc.c | 8 +++++---
drivers/pci/host/pcie-iproc.h | 2 ++
3 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/drivers/pci/host/pcie-iproc-platform.c b/drivers/pci/host/pcie-iproc-platform.c
index a5073a9..235c545 100644
--- a/drivers/pci/host/pcie-iproc-platform.c
+++ b/drivers/pci/host/pcie-iproc-platform.c
@@ -92,6 +92,9 @@ static int iproc_pcie_pltfm_probe(struct platform_device *pdev)
pcie->need_ob_cfg = true;
}
+ if (of_property_read_bool(np, "dma-ranges"))
+ pcie->need_ib_cfg = true;
Nit:
pci->need_ib_cfg = of_property_read_bool(np, "dma-ranges"));
will do. Add a comment to it to explain why it is needed.
Please update the patch, send a v2 and I will merge it.
Thanks,
Lorenzo