diff options
| author | Jia-Ju Bai <baijiaju1990@163.com> | 2014-12-22 22:29:03 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2014-12-27 02:20:55 -0500 |
| commit | eb69c5bf8273edbe1c5c748fa299b5e5a08f35d6 (patch) | |
| tree | 3681c575923fad64885a4023790ade0588ce785d /drivers | |
| parent | a22a9e4141474b9f314947f159817050a1db58d8 (diff) | |
ne2k-pci: Add pci_disable_device in error handling
For linux-3.18.0
The driver lacks pci_disable_device in error handling code of
ne2k_pci_init_one, so the device enabled by pci_enable_device is not
disabled when errors occur.
This patch fixes this problem.
Signed-off-by: Jia-Ju Bai <baijiaju1990@163.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/net/ethernet/8390/ne2k-pci.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/net/ethernet/8390/ne2k-pci.c b/drivers/net/ethernet/8390/ne2k-pci.c index 89c8d9fc97de..57e97910c728 100644 --- a/drivers/net/ethernet/8390/ne2k-pci.c +++ b/drivers/net/ethernet/8390/ne2k-pci.c | |||
| @@ -246,13 +246,13 @@ static int ne2k_pci_init_one(struct pci_dev *pdev, | |||
| 246 | 246 | ||
| 247 | if (!ioaddr || ((pci_resource_flags (pdev, 0) & IORESOURCE_IO) == 0)) { | 247 | if (!ioaddr || ((pci_resource_flags (pdev, 0) & IORESOURCE_IO) == 0)) { |
| 248 | dev_err(&pdev->dev, "no I/O resource at PCI BAR #0\n"); | 248 | dev_err(&pdev->dev, "no I/O resource at PCI BAR #0\n"); |
| 249 | return -ENODEV; | 249 | goto err_out; |
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | if (request_region (ioaddr, NE_IO_EXTENT, DRV_NAME) == NULL) { | 252 | if (request_region (ioaddr, NE_IO_EXTENT, DRV_NAME) == NULL) { |
| 253 | dev_err(&pdev->dev, "I/O resource 0x%x @ 0x%lx busy\n", | 253 | dev_err(&pdev->dev, "I/O resource 0x%x @ 0x%lx busy\n", |
| 254 | NE_IO_EXTENT, ioaddr); | 254 | NE_IO_EXTENT, ioaddr); |
| 255 | return -EBUSY; | 255 | goto err_out; |
| 256 | } | 256 | } |
| 257 | 257 | ||
| 258 | reg0 = inb(ioaddr); | 258 | reg0 = inb(ioaddr); |
| @@ -392,6 +392,8 @@ err_out_free_netdev: | |||
| 392 | free_netdev (dev); | 392 | free_netdev (dev); |
| 393 | err_out_free_res: | 393 | err_out_free_res: |
| 394 | release_region (ioaddr, NE_IO_EXTENT); | 394 | release_region (ioaddr, NE_IO_EXTENT); |
| 395 | err_out: | ||
| 396 | pci_disable_device(pdev); | ||
| 395 | return -ENODEV; | 397 | return -ENODEV; |
| 396 | } | 398 | } |
| 397 | 399 | ||
