lkml.org 
[lkml]   [2021]   [Aug]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 31/32] tulip: windbond-840: Fix missing pci_disable_device() in probe and remove
    Date
    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 1f62b9423851..31dfb695eded 100644
    --- a/drivers/net/ethernet/dec/tulip/winbond-840.c
    +++ b/drivers/net/ethernet/dec/tulip/winbond-840.c
    @@ -368,7 +368,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);
    @@ -390,7 +390,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));
    @@ -469,8 +469,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;
    @@ -1537,7 +1535,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


    \
     
     \ /
      Last update: 2021-08-02 15:50    [W:2.738 / U:0.200 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site