pcmcia: pd6729: call disable_pci_device() if pci_probe() failed
Subsystems (2)
PATCH 11/18 pcmcia: pd6729: call disable_pci_device() if pci_probe() failed
Driver should call disable_pci_device() if it returns from pci_probe() with error. Also it must not be called if pci_request_region() fails as it means that somebody uses device resources and rules the device.
Signed-off-by Kulikov Vasiliy <[email protected]>
--- drivers/pcmcia/pd6729.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/pcmcia/pd6729.c +2 -2
@@ -646,7 +646,7 @@ static int __devinit pd6729_pci_probe(struct pci_dev *dev,if (!pci_resource_start (dev,0 )) {dev_warn (&dev->dev,"refusing to load the driver as the " "io_base is NULL.\n" ); - goto err_out_free_mem; + goto err_out_disable; } dev_info(&dev->dev, "Cirrus PD6729 PCI to PCMCIA Bridge at 0x%llx "
@@ -666,7 +666,7 @@ static int __devinit pd6729_pci_probe(struct pci_dev *dev, ret =pci_request_regions (dev,"pd6729" );if (ret) {dev_warn (&dev->dev,"pci request region failed.\n" ); - goto err_out_disable; + goto err_out_free_mem; }if (dev->irq =NO_IRQ )
Signature · 1 line
1.7.0.4
Dominik Brodowski
maintainerQuoted 3 lines · Kulikov Vasiliy
Driver should call
disable_pci_device()if it returns frompci_probe()with error. Also it must not be called ifpci_request_region()fails as it means that somebody uses device resources and rules the device.
But that would mean that a driver first enables a device, then fails to make use of it, and then can't disable it? This doesn't look right to me. The first part of the patch looks fine, though.
Best,
Dominik
Quoted 31 lines
Signed-off-by Kulikov Vasiliy <[email protected]>--- drivers/pcmcia/pd6729.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)drivers/pcmcia/pd6729.c +2
-2@@ -646,7 +646,7 @@ static int __devinit pd6729_pci_probe(struct pci_dev *dev,if (!pci_resource_start (dev,0 )) {dev_warn (&dev->dev,"refusing to load the driver as the " "io_base is NULL.\n" ); - goto err_out_free_mem; + goto err_out_disable; } dev_info(&dev->dev, "Cirrus PD6729 PCI to PCMCIA Bridge at 0x%llx "@@ -666,7 +666,7 @@ static int __devinit pd6729_pci_probe(struct pci_dev *dev, ret =pci_request_regions (dev,"pd6729" );if (ret) {dev_warn (&dev->dev,"pci request region failed.\n" ); - goto err_out_disable; + goto err_out_free_mem; }if (dev->irq =NO_IRQ )Signature · 1 line
1.7.0.4