summaryrefslogtreecommitdiff
path: root/drivers/pci/dwc/pcie-designware-host.c
diff options
context:
space:
mode:
authorBjorn Andersson <bjorn.andersson@linaro.org>2017-07-16 09:39:45 +0300
committerBjorn Helgaas <bhelgaas@google.com>2017-08-04 00:14:32 +0300
commit4a301766f5263dd94c1b95d1b1bbdf338afb1a37 (patch)
tree9013a6e5a8441611534df7db0c4ecb5fbb80b880 /drivers/pci/dwc/pcie-designware-host.c
parente9be4d78618af2e0d5592d9556cf0bba210cfd1a (diff)
downloadlinux-4a301766f5263dd94c1b95d1b1bbdf338afb1a37.tar.xz
PCI: dwc: designware: Handle ->host_init() failures
In several dwc-based drivers, ->host_init() can fail, so make sure to propagate and handle this to avoid continuing operation of a driver or hardware in an invalid state. Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Joao Pinto <jpinto@synopsys.com> Acked-by: Jingoo Han <jingoohan1@gmail.com>
Diffstat (limited to 'drivers/pci/dwc/pcie-designware-host.c')
-rw-r--r--drivers/pci/dwc/pcie-designware-host.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/pci/dwc/pcie-designware-host.c b/drivers/pci/dwc/pcie-designware-host.c
index d29c020da082..157621175147 100644
--- a/drivers/pci/dwc/pcie-designware-host.c
+++ b/drivers/pci/dwc/pcie-designware-host.c
@@ -401,8 +401,11 @@ int dw_pcie_host_init(struct pcie_port *pp)
}
}
- if (pp->ops->host_init)
- pp->ops->host_init(pp);
+ if (pp->ops->host_init) {
+ ret = pp->ops->host_init(pp);
+ if (ret)
+ goto error;
+ }
pp->root_bus_nr = pp->busn->start;