projects
/
deliverable
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
PCI: xilinx: Free bridge resource list on failure
[deliverable/linux.git]
/
drivers
/
pci
/
host
/
pcie-xilinx.c
diff --git
a/drivers/pci/host/pcie-xilinx.c
b/drivers/pci/host/pcie-xilinx.c
index 65f0fe0c2eafb67141fd84f84b31285ff038c868..5c456db47c49cac56f068220be8751c46bc051ec 100644
(file)
--- a/
drivers/pci/host/pcie-xilinx.c
+++ b/
drivers/pci/host/pcie-xilinx.c
@@
-660,7
+660,6
@@
static int xilinx_pcie_probe(struct platform_device *pdev)
struct xilinx_pcie_port *port;
struct device *dev = &pdev->dev;
struct pci_bus *bus;
struct xilinx_pcie_port *port;
struct device *dev = &pdev->dev;
struct pci_bus *bus;
-
int err;
resource_size_t iobase = 0;
LIST_HEAD(res);
int err;
resource_size_t iobase = 0;
LIST_HEAD(res);
@@
-696,8
+695,10
@@
static int xilinx_pcie_probe(struct platform_device *pdev)
}
bus = pci_create_root_bus(&pdev->dev, 0,
&xilinx_pcie_ops, port, &res);
}
bus = pci_create_root_bus(&pdev->dev, 0,
&xilinx_pcie_ops, port, &res);
- if (!bus)
- return -ENOMEM;
+ if (!bus) {
+ err = -ENOMEM;
+ goto error;
+ }
#ifdef CONFIG_PCI_MSI
xilinx_pcie_msi_chip.dev = port->dev;
#ifdef CONFIG_PCI_MSI
xilinx_pcie_msi_chip.dev = port->dev;
@@
-712,6
+713,10
@@
static int xilinx_pcie_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, port);
return 0;
platform_set_drvdata(pdev, port);
return 0;
+
+error:
+ pci_free_resource_list(&res);
+ return err;
}
/**
}
/**
This page took
0.036472 seconds
and
5
git commands to generate.