From: Arjun Vynipadath <[email protected]>

[ Upstream commit 2a8d84bf513823ba398f4b2dec41b8decf4041af ]

The locally maintained list for tracking hash mac table was
not freed during driver remove.

Signed-off-by: Arjun Vynipadath <[email protected]>
Signed-off-by: Ganesh Goudar <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c 
b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
index 5478a2ab45c4..821f68baa55c 100644
--- a/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
+++ b/drivers/net/ethernet/chelsio/cxgb4/cxgb4_main.c
@@ -2251,6 +2251,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);
@@ -2259,6 +2261,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;
 }
 
-- 
2.25.1



Reply via email to