Re: [PATCH] PCI: iproc: Fix NULL pointer dereference for BCMA

From: Ray Jui
Date: Thu Jan 11 2018 - 15:37:44 EST


Hi Lorenzo,

On 1/11/2018 9:15 AM, Lorenzo Pieralisi wrote:
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 >

Will fix.

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.

Will fix.


Please update the patch, send a v2 and I will merge it.

Okay will send out v2 with comments from you addressed. Thanks!


Thanks,
Lorenzo