diff options
-rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c index 8b3107b2fcc1..0067b975873f 100644 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | |||
@@ -12942,25 +12942,26 @@ static void __bnx2x_remove(struct pci_dev *pdev, | |||
12942 | pci_set_power_state(pdev, PCI_D3hot); | 12942 | pci_set_power_state(pdev, PCI_D3hot); |
12943 | } | 12943 | } |
12944 | 12944 | ||
12945 | if (bp->regview) | 12945 | if (remove_netdev) { |
12946 | iounmap(bp->regview); | 12946 | if (bp->regview) |
12947 | iounmap(bp->regview); | ||
12947 | 12948 | ||
12948 | /* for vf doorbells are part of the regview and were unmapped along with | 12949 | /* For vfs, doorbells are part of the regview and were unmapped |
12949 | * it. FW is only loaded by PF. | 12950 | * along with it. FW is only loaded by PF. |
12950 | */ | 12951 | */ |
12951 | if (IS_PF(bp)) { | 12952 | if (IS_PF(bp)) { |
12952 | if (bp->doorbells) | 12953 | if (bp->doorbells) |
12953 | iounmap(bp->doorbells); | 12954 | iounmap(bp->doorbells); |
12954 | 12955 | ||
12955 | bnx2x_release_firmware(bp); | 12956 | bnx2x_release_firmware(bp); |
12956 | } | 12957 | } |
12957 | bnx2x_free_mem_bp(bp); | 12958 | bnx2x_free_mem_bp(bp); |
12958 | 12959 | ||
12959 | if (remove_netdev) | ||
12960 | free_netdev(dev); | 12960 | free_netdev(dev); |
12961 | 12961 | ||
12962 | if (atomic_read(&pdev->enable_cnt) == 1) | 12962 | if (atomic_read(&pdev->enable_cnt) == 1) |
12963 | pci_release_regions(pdev); | 12963 | pci_release_regions(pdev); |
12964 | } | ||
12964 | 12965 | ||
12965 | pci_disable_device(pdev); | 12966 | pci_disable_device(pdev); |
12966 | } | 12967 | } |