aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
diff options
context:
space:
mode:
authorAlexander Duyck <alexander.h.duyck@intel.com>2012-03-16 22:39:16 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2012-04-30 21:54:43 -0400
commit2b1588c3fafc3fd2b3bc49202a380eaecbbc2193 (patch)
treedc61fe55fbfdb5f74b0f31be5eac9956afde4559 /drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
parent9bd1be457d2b9568c3c8f8f6b8e450a501bff402 (diff)
ixgbe: Fix a memory leak in IEEE DCB
The driver was freeing memory in shutdown instead of remove. As a result we were leaking memory if IEEE DCB was enabled and we loaded/unloaded the driver. This change moves the freeing of the memory into the remove routine where it belongs. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Acked-by: John Fastabend <john.r.fastabend@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/ixgbe/ixgbe_main.c')
-rw-r--r--drivers/net/ethernet/intel/ixgbe/ixgbe_main.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
index a7f3cd872caf..88f6b2e9b72d 100644
--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
@@ -4873,10 +4873,6 @@ static int __ixgbe_shutdown(struct pci_dev *pdev, bool *enable_wake)
4873 } 4873 }
4874 4874
4875 ixgbe_clear_interrupt_scheme(adapter); 4875 ixgbe_clear_interrupt_scheme(adapter);
4876#ifdef CONFIG_DCB
4877 kfree(adapter->ixgbe_ieee_pfc);
4878 kfree(adapter->ixgbe_ieee_ets);
4879#endif
4880 4876
4881#ifdef CONFIG_PM 4877#ifdef CONFIG_PM
4882 retval = pci_save_state(pdev); 4878 retval = pci_save_state(pdev);
@@ -7224,6 +7220,11 @@ static void __devexit ixgbe_remove(struct pci_dev *pdev)
7224 7220
7225 ixgbe_release_hw_control(adapter); 7221 ixgbe_release_hw_control(adapter);
7226 7222
7223#ifdef CONFIG_DCB
7224 kfree(adapter->ixgbe_ieee_pfc);
7225 kfree(adapter->ixgbe_ieee_ets);
7226
7227#endif
7227 iounmap(adapter->hw.hw_addr); 7228 iounmap(adapter->hw.hw_addr);
7228 pci_release_selected_regions(pdev, pci_select_bars(pdev, 7229 pci_release_selected_regions(pdev, pci_select_bars(pdev,
7229 IORESOURCE_MEM)); 7230 IORESOURCE_MEM));