lkml.org 
[lkml]   [2018]   [May]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH net-next 10/10] net: hns3: Fixes the missing PCI iounmap for various legs
    Date
    From: Fuyun Liang <liangfuyun1@huawei.com>

    We call pcim_iomap in hclge_pci_init, pcim_iounmap should be called
    in error handle of hclge_init_ae_dev.

    We call pcim_iomap in hclge_pci_init, but do not call pcim_iounmap in
    hclge_pci_uninit. When we remove the hclge.ko and insert it again, a
    problem that pci can not map will happen. pcim_iounmap need to be called
    in hclge_pci_uninit.

    Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support")
    Signed-off-by: Fuyun Liang <liangfuyun1@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    ---
    drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
    index 75d9b8c..46435c8 100644
    --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
    +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
    @@ -5425,6 +5425,7 @@ static void hclge_pci_uninit(struct hclge_dev *hdev)
    {
    struct pci_dev *pdev = hdev->pdev;

    + pcim_iounmap(pdev, hdev->hw.io_base);
    pci_free_irq_vectors(pdev);
    pci_clear_master(pdev);
    pci_release_mem_regions(pdev);
    @@ -5589,6 +5590,7 @@ static int hclge_init_ae_dev(struct hnae3_ae_dev *ae_dev)
    err_cmd_uninit:
    hclge_destroy_cmd_queue(&hdev->hw);
    err_pci_uninit:
    + pcim_iounmap(pdev, hdev->hw.io_base);
    pci_clear_master(pdev);
    pci_release_regions(pdev);
    pci_disable_device(pdev);
    --
    2.7.4

    \
     
     \ /
      Last update: 2018-05-15 20:22    [W:3.774 / U:0.528 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site