i40evf: remove leftover VLAN filters
authorMitch A Williams <mitch.a.williams@intel.com>
Tue, 9 Dec 2014 08:53:05 +0000 (08:53 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Tue, 13 Jan 2015 19:47:42 +0000 (11:47 -0800)
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>
drivers/net/ethernet/intel/i40evf/i40evf_main.c

index d3392569485c75ad3392db90bdef962bf4af4a27..994ae4e782d43504de162d97f272aa0cc12f16b6 100644 (file)
@@ -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);