summaryrefslogtreecommitdiffstats
path: root/drivers/pci/probe.c
diff options
context:
space:
mode:
authorJan Kiszka2018-05-15 11:07:01 +0200
committerBjorn Helgaas2018-05-30 18:34:41 +0200
commit3bbce531788719749520f28052cabdef16af6b16 (patch)
treecd0d7693431b82c0cacce0dbf6705b1c7906365d /drivers/pci/probe.c
parentPCI: Make pci_get_new_domain_nr() static (diff)
downloadkernel-qcow2-linux-3bbce531788719749520f28052cabdef16af6b16.tar.gz
kernel-qcow2-linux-3bbce531788719749520f28052cabdef16af6b16.tar.xz
kernel-qcow2-linux-3bbce531788719749520f28052cabdef16af6b16.zip
PCI: Fix devm_pci_alloc_host_bridge() memory leak
Fix a memory leak by freeing the PCI resource list in devm_pci_release_host_bridge_dev(). Fixes: 5c3f18cce083 ("PCI: Add devm_pci_alloc_host_bridge() interface") Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/probe.c')
-rw-r--r--drivers/pci/probe.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index ac91b6fd0bcd..eccf204c9160 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -526,12 +526,14 @@ static void devm_pci_release_host_bridge_dev(struct device *dev)
if (bridge->release_fn)
bridge->release_fn(bridge);
+
+ pci_free_resource_list(&bridge->windows);
}
static void pci_release_host_bridge_dev(struct device *dev)
{
devm_pci_release_host_bridge_dev(dev);
- pci_free_host_bridge(to_pci_host_bridge(dev));
+ kfree(to_pci_host_bridge(dev));
}
struct pci_host_bridge *pci_alloc_host_bridge(size_t priv)