| From 61a224ec24e5ccb11255dfd917cceb125957e1b5 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 28 Jul 2021 15:43:13 +0800 |
| Subject: tulip: windbond-840: Fix missing pci_disable_device() in probe and |
| remove |
| |
| From: Wang Hai <wanghai38@huawei.com> |
| |
| [ Upstream commit 76a16be07b209a3f507c72abe823bd3af1c8661a ] |
| |
| Replace pci_enable_device() with pcim_enable_device(), |
| pci_disable_device() and pci_release_regions() will be |
| called in release automatically. |
| |
| Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") |
| Reported-by: Hulk Robot <hulkci@huawei.com> |
| Signed-off-by: Wang Hai <wanghai38@huawei.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/dec/tulip/winbond-840.c | 7 ++----- |
| 1 file changed, 2 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/dec/tulip/winbond-840.c b/drivers/net/ethernet/dec/tulip/winbond-840.c |
| index 89cbdc1f4857..6161e1c604c0 100644 |
| --- a/drivers/net/ethernet/dec/tulip/winbond-840.c |
| +++ b/drivers/net/ethernet/dec/tulip/winbond-840.c |
| @@ -357,7 +357,7 @@ static int w840_probe1(struct pci_dev *pdev, const struct pci_device_id *ent) |
| int i, option = find_cnt < MAX_UNITS ? options[find_cnt] : 0; |
| void __iomem *ioaddr; |
| |
| - i = pci_enable_device(pdev); |
| + i = pcim_enable_device(pdev); |
| if (i) return i; |
| |
| pci_set_master(pdev); |
| @@ -379,7 +379,7 @@ static int w840_probe1(struct pci_dev *pdev, const struct pci_device_id *ent) |
| |
| ioaddr = pci_iomap(pdev, TULIP_BAR, netdev_res_size); |
| if (!ioaddr) |
| - goto err_out_free_res; |
| + goto err_out_netdev; |
| |
| for (i = 0; i < 3; i++) |
| ((__le16 *)dev->dev_addr)[i] = cpu_to_le16(eeprom_read(ioaddr, i)); |
| @@ -458,8 +458,6 @@ static int w840_probe1(struct pci_dev *pdev, const struct pci_device_id *ent) |
| |
| err_out_cleardev: |
| pci_iounmap(pdev, ioaddr); |
| -err_out_free_res: |
| - pci_release_regions(pdev); |
| err_out_netdev: |
| free_netdev (dev); |
| return -ENODEV; |
| @@ -1526,7 +1524,6 @@ static void w840_remove1(struct pci_dev *pdev) |
| if (dev) { |
| struct netdev_private *np = netdev_priv(dev); |
| unregister_netdev(dev); |
| - pci_release_regions(pdev); |
| pci_iounmap(pdev, np->base_addr); |
| free_netdev(dev); |
| } |
| -- |
| 2.30.2 |
| |