Commit afd6eae1 authored by Sergei Shtylyov's avatar Sergei Shtylyov Committed by David S. Miller

3c59x: consolidate error cleanup in vortex_init_one()

The PCI driver's probe() method  duplicates the error cleanup code each time it
has to do error exit. Consolidate the error cleanup code  in  one place and use
*goto* to jump to the right places.
Signed-off-by: default avatarSergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Acked-by: default avatarSteffen Klassert <klassert@mathematik.tu-chemnitz.de>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 3f8b9637
...@@ -1012,10 +1012,8 @@ static int vortex_init_one(struct pci_dev *pdev, ...@@ -1012,10 +1012,8 @@ static int vortex_init_one(struct pci_dev *pdev,
goto out; goto out;
rc = pci_request_regions(pdev, DRV_NAME); rc = pci_request_regions(pdev, DRV_NAME);
if (rc < 0) { if (rc < 0)
pci_disable_device(pdev); goto out_disable;
goto out;
}
unit = vortex_cards_found; unit = vortex_cards_found;
...@@ -1032,23 +1030,24 @@ static int vortex_init_one(struct pci_dev *pdev, ...@@ -1032,23 +1030,24 @@ static int vortex_init_one(struct pci_dev *pdev,
if (!ioaddr) /* If mapping fails, fall-back to BAR 0... */ if (!ioaddr) /* If mapping fails, fall-back to BAR 0... */
ioaddr = pci_iomap(pdev, 0, 0); ioaddr = pci_iomap(pdev, 0, 0);
if (!ioaddr) { if (!ioaddr) {
pci_release_regions(pdev);
pci_disable_device(pdev);
rc = -ENOMEM; rc = -ENOMEM;
goto out; goto out_release;
} }
rc = vortex_probe1(&pdev->dev, ioaddr, pdev->irq, rc = vortex_probe1(&pdev->dev, ioaddr, pdev->irq,
ent->driver_data, unit); ent->driver_data, unit);
if (rc < 0) { if (rc < 0)
pci_iounmap(pdev, ioaddr); goto out_iounmap;
pci_release_regions(pdev);
pci_disable_device(pdev);
goto out;
}
vortex_cards_found++; vortex_cards_found++;
goto out;
out_iounmap:
pci_iounmap(pdev, ioaddr);
out_release:
pci_release_regions(pdev);
out_disable:
pci_disable_device(pdev);
out: out:
return rc; return rc;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment