]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
cxgb4: free mac_hlist properly
authorArjun Vynipadath <arjun@chelsio.com>
Fri, 9 Nov 2018 09:20:25 +0000 (14:50 +0530)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Nov 2018 23:18:00 +0000 (15:18 -0800)
The locally maintained list for tracking hash mac table was
not freed during driver remove.

Signed-off-by: Arjun Vynipadath <arjun@chelsio.com>
Signed-off-by: Ganesh Goudar <ganeshgr@chelsio.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c

index 05a46926016a5e2d53bc57b0c9c5ca19f5484f29..956e708c777dd4d5bcebe236c5b87ba21236a6b9 100644 (file)
@@ -2295,6 +2295,8 @@ static int cxgb_up(struct adapter *adap)
 
 static void cxgb_down(struct adapter *adapter)
 {
+       struct hash_mac_addr *entry, *tmp;
+
        cancel_work_sync(&adapter->tid_release_task);
        cancel_work_sync(&adapter->db_full_task);
        cancel_work_sync(&adapter->db_drop_task);
@@ -2303,6 +2305,12 @@ static void cxgb_down(struct adapter *adapter)
 
        t4_sge_stop(adapter);
        t4_free_sge_resources(adapter);
+
+       list_for_each_entry_safe(entry, tmp, &adapter->mac_hlist, list) {
+               list_del(&entry->list);
+               kfree(entry);
+       }
+
        adapter->flags &= ~FULL_INIT_DONE;
 }