summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRandy Dunlap <rdunlap@xenotime.net>2006-07-06 21:36:01 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-08-03 13:20:06 -0700
commite4fd1f4a6e05335d464fe003c164fea850a3b3f3 (patch)
treefa1ed3dd97707d1a942f79ff8c8acfd32e2c2273
parent60854838596906ebae7f32e4de921e150e669b60 (diff)
downloadlinux-e4fd1f4a6e05335d464fe003c164fea850a3b3f3.tar.bz2
PCIE: cleanup on probe error
If pcie_portdrv_probe() fails but it had already called pci_enable_device(), then call pci_disable_device() when returning error. Is there some reason that this isn't being done? or was it just missed? Signed-off-by: Randy Dunlap <rdunlap@xenotime.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/pci/pcie/portdrv_pci.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
index d0a37976faa6..478d0d28f7ad 100644
--- a/drivers/pci/pcie/portdrv_pci.c
+++ b/drivers/pci/pcie/portdrv_pci.c
@@ -56,8 +56,10 @@ static int __devinit pcie_portdrv_probe (struct pci_dev *dev,
"%s->Dev[%04x:%04x] has invalid IRQ. Check vendor BIOS\n",
__FUNCTION__, dev->device, dev->vendor);
}
- if (pcie_port_device_register(dev))
+ if (pcie_port_device_register(dev)) {
+ pci_disable_device(dev);
return -ENOMEM;
+ }
return 0;
}