aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/intel
diff options
context:
space:
mode:
authorMitch Williams <mitch.a.williams@intel.com>2016-12-12 18:44:10 -0500
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2017-02-18 23:35:35 -0500
commit8a68badd12a8b708a02d54cd5aac4d07851a6d5a (patch)
tree76cce57faf0b8499ce6a9e20e9229f4243f075d6 /drivers/net/ethernet/intel
parent03aa268b146127361c206fe3942add2adf6ce1d7 (diff)
i40evf: free rings in remove function
When the i40evf_remove() calls netdev close, the device doesn't actually close - it schedules the work for the watchdog to perform. Since we're stopping the watchdog, this work doesn't get done. However, we're resetting the part, so we can free resources after the reset request has gone through. This plugs a memory leak. Change-ID: Id5335dcaf76ce00d2a4c3d26e9faf711d7f051cf Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index 920c1cb06a92..5673dbd2cf7d 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -2871,7 +2871,8 @@ static void i40evf_remove(struct pci_dev *pdev)
2871 i40evf_request_reset(adapter); 2871 i40evf_request_reset(adapter);
2872 msleep(50); 2872 msleep(50);
2873 } 2873 }
2874 2874 i40evf_free_all_tx_resources(adapter);
2875 i40evf_free_all_rx_resources(adapter);
2875 i40evf_misc_irq_disable(adapter); 2876 i40evf_misc_irq_disable(adapter);
2876 i40evf_free_misc_irq(adapter); 2877 i40evf_free_misc_irq(adapter);
2877 i40evf_reset_interrupt_capability(adapter); 2878 i40evf_reset_interrupt_capability(adapter);