summaryrefslogtreecommitdiffstats
path: root/drivers/pci
diff options
context:
space:
mode:
authorAlex Chiang <achiang@hp.com>2009-03-08 05:46:49 +0100
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-03-20 18:48:16 +0100
commit745be2e700cdddd5da4e402854a484242c3628df (patch)
treee29464050d8b4102fddf7d89d5f3dab7115fcbaf /drivers/pci
parentPCI: PCIe portdrv: eliminate double kfree in remove path (diff)
downloadlinux-745be2e700cdddd5da4e402854a484242c3628df.tar.xz
linux-745be2e700cdddd5da4e402854a484242c3628df.zip
PCIe: portdrv: call pci_disable_device during remove
The PCIe port driver calls pci_enable_device when registering ports, but never calls pci_disable_device during removal. Acked-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Alex Chiang <achiang@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'drivers/pci')
-rw-r--r--drivers/pci/pcie/portdrv_core.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
index 5a5bfe7cdf5f..e39982503863 100644
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -473,6 +473,7 @@ void pcie_port_device_remove(struct pci_dev *dev)
struct pcie_port_data *port_data = pci_get_drvdata(dev);
device_for_each_child(&dev->dev, NULL, remove_iter);
+ pci_disable_device(dev);
switch (port_data->port_irq_mode) {
case PCIE_PORT_MSIX_MODE: