aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjorn Helgaas <bhelgaas@google.com>2016-10-06 13:36:07 -0500
committerBjorn Helgaas <bhelgaas@google.com>2016-10-11 22:38:51 -0500
commitf66e5b290796aeb6c5e027506175c87978f2722a (patch)
treeb896270f78d0e35064ea993d7aa87b8a894cd4ef
parent556c7bb7df367ada8833c9d78df48943e4826413 (diff)
downloadmmc-f66e5b290796aeb6c5e027506175c87978f2722a.tar.gz
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>
-rw-r--r--drivers/pci/host/pcie-iproc-bcma.c5
-rw-r--r--drivers/pci/host/pcie-iproc.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/drivers/pci/host/pcie-iproc-bcma.c b/drivers/pci/host/pcie-iproc-bcma.c
index ec6edafdaabfc7..8ce089043a27dc 100644
--- a/drivers/pci/host/pcie-iproc-bcma.c
+++ b/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];
diff --git a/drivers/pci/host/pcie-iproc.c b/drivers/pci/host/pcie-iproc.c
index c41d6bdf66dd8d..12a515622aef11 100644
--- a/drivers/pci/host/pcie-iproc.c
+++ b/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;