瀏覽代碼

PCI: iproc: Validate CSR base in BCMA setup code

Validate iproc_pcie->base for BCMA devices just like we already do for
platform devices in iproc_pcie_pltfm_probe().  No functional change
intended.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Bjorn Helgaas 9 年之前
父節點
當前提交
f66e5b2907
共有 2 個文件被更改,包括 6 次插入1 次删除
  1. 5 0
      drivers/pci/host/pcie-iproc-bcma.c
  2. 1 1
      drivers/pci/host/pcie-iproc.c

+ 5 - 0
drivers/pci/host/pcie-iproc-bcma.c

@@ -55,6 +55,11 @@ static int iproc_pcie_bcma_probe(struct bcma_device *bdev)
 	pcie->dev = dev;
 
 	pcie->base = bdev->io_addr;
+	if (!pcie->base) {
+		dev_err(dev, "no controller registers\n");
+		return -ENOMEM;
+	}
+
 	pcie->base_addr = bdev->addr;
 
 	res_mem.start = bdev->addr_s[0];

+ 1 - 1
drivers/pci/host/pcie-iproc.c

@@ -462,7 +462,7 @@ int iproc_pcie_setup(struct iproc_pcie *pcie, struct list_head *res)
 	void *sysdata;
 	struct pci_bus *bus;
 
-	if (!pcie || !pcie->dev || !pcie->base)
+	if (!pcie || !pcie->dev)
 		return -EINVAL;
 
 	dev = pcie->dev;