diff options
author | Bjorn Helgaas <bhelgaas@google.com> | 2016-10-06 21:36:07 +0300 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2016-10-12 06:38:51 +0300 |
commit | f66e5b290796aeb6c5e027506175c87978f2722a (patch) | |
tree | b896270f78d0e35064ea993d7aa87b8a894cd4ef /drivers | |
parent | 556c7bb7df367ada8833c9d78df48943e4826413 (diff) | |
download | linux-f66e5b290796aeb6c5e027506175c87978f2722a.tar.xz |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/pci/host/pcie-iproc-bcma.c | 5 | ||||
-rw-r--r-- | drivers/pci/host/pcie-iproc.c | 2 |
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 ec6edafdaabf..8ce089043a27 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 c41d6bdf66dd..12a515622aef 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; |