aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMitch A Williams <mitch.a.williams@intel.com>2014-12-09 08:53:05 +0000
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-01-13 11:47:42 -0800
commit37dfdf373ce98a7b9fe99478bc40ffaef2ea5eee (patch)
tree8092558cbbdddd0e9cd89b0905c9cb02d6d58fda
parenti40evf: refactor shutdown code (diff)
downloadlinux-dev-37dfdf373ce98a7b9fe99478bc40ffaef2ea5eee.tar.xz
linux-dev-37dfdf373ce98a7b9fe99478bc40ffaef2ea5eee.zip
i40evf: remove leftover VLAN filters
If we're using VLANs and communications with the PF fail during shutdown, we will leak memory because not all of the VLAN filters will be removed. To eliminate this possibility, go through the list again right before the module is removed and delete any leftover entries. Change-ID: Id3b5315c47ca0a61ae123a96ff345d010bc41aed Signed-off-by: Mitch Williams <mitch.a.williams@intel.com> Acked-by: Shannon Nelson <shannon.nelson@intel.com> Tested-by: Jim Young <james.m.young@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r--drivers/net/ethernet/intel/i40evf/i40evf_main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
index d3392569485c..994ae4e782d4 100644
--- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c
+++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c
@@ -2462,6 +2462,10 @@ static void i40evf_remove(struct pci_dev *pdev)
list_del(&f->list);
kfree(f);
}
+ list_for_each_entry_safe(f, ftmp, &adapter->vlan_filter_list, list) {
+ list_del(&f->list);
+ kfree(f);
+ }
free_netdev(netdev);