| From 1973cecf16580a2ae9079aacd691c89968e205c2 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 28 Jul 2021 20:11:07 +0800 |
| Subject: sis900: Fix missing pci_disable_device() in probe and remove |
| |
| From: Wang Hai <wanghai38@huawei.com> |
| |
| [ Upstream commit 89fb62fde3b226f99b7015280cf132e2a7438edf ] |
| |
| 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/sis/sis900.c | 7 ++----- |
| 1 file changed, 2 insertions(+), 5 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/sis/sis900.c b/drivers/net/ethernet/sis/sis900.c |
| index 620c26f71be8..e267b7ce3a45 100644 |
| --- a/drivers/net/ethernet/sis/sis900.c |
| +++ b/drivers/net/ethernet/sis/sis900.c |
| @@ -443,7 +443,7 @@ static int sis900_probe(struct pci_dev *pci_dev, |
| #endif |
| |
| /* setup various bits in PCI command register */ |
| - ret = pci_enable_device(pci_dev); |
| + ret = pcim_enable_device(pci_dev); |
| if(ret) return ret; |
| |
| i = dma_set_mask(&pci_dev->dev, DMA_BIT_MASK(32)); |
| @@ -469,7 +469,7 @@ static int sis900_probe(struct pci_dev *pci_dev, |
| ioaddr = pci_iomap(pci_dev, 0, 0); |
| if (!ioaddr) { |
| ret = -ENOMEM; |
| - goto err_out_cleardev; |
| + goto err_out; |
| } |
| |
| sis_priv = netdev_priv(net_dev); |
| @@ -581,8 +581,6 @@ err_unmap_tx: |
| sis_priv->tx_ring_dma); |
| err_out_unmap: |
| pci_iounmap(pci_dev, ioaddr); |
| -err_out_cleardev: |
| - pci_release_regions(pci_dev); |
| err_out: |
| free_netdev(net_dev); |
| return ret; |
| @@ -2499,7 +2497,6 @@ static void sis900_remove(struct pci_dev *pci_dev) |
| sis_priv->tx_ring_dma); |
| pci_iounmap(pci_dev, sis_priv->ioaddr); |
| free_netdev(net_dev); |
| - pci_release_regions(pci_dev); |
| } |
| |
| static int __maybe_unused sis900_suspend(struct device *dev) |
| -- |
| 2.30.2 |
| |