Loading net/mac80211/mesh.c +9 −6 Original line number Original line Diff line number Diff line Loading @@ -315,6 +315,13 @@ struct mesh_table *mesh_table_alloc(int size_order) return newtbl; return newtbl; } } static void __mesh_table_free(struct mesh_table *tbl) { kfree(tbl->hash_buckets); kfree(tbl->hashwlock); kfree(tbl); } void mesh_table_free(struct mesh_table *tbl, bool free_leafs) void mesh_table_free(struct mesh_table *tbl, bool free_leafs) { { struct hlist_head *mesh_hash; struct hlist_head *mesh_hash; Loading @@ -330,9 +337,7 @@ void mesh_table_free(struct mesh_table *tbl, bool free_leafs) } } spin_unlock(&tbl->hashwlock[i]); spin_unlock(&tbl->hashwlock[i]); } } kfree(tbl->hash_buckets); __mesh_table_free(tbl); kfree(tbl->hashwlock); kfree(tbl); } } static void ieee80211_mesh_path_timer(unsigned long data) static void ieee80211_mesh_path_timer(unsigned long data) Loading Loading @@ -378,9 +383,7 @@ struct mesh_table *mesh_table_grow(struct mesh_table *tbl) hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) tbl->free_node(p, 0); tbl->free_node(p, 0); } } kfree(newtbl->hash_buckets); __mesh_table_free(tbl); kfree(newtbl->hashwlock); kfree(newtbl); endgrow: endgrow: return NULL; return NULL; } } Loading Loading
net/mac80211/mesh.c +9 −6 Original line number Original line Diff line number Diff line Loading @@ -315,6 +315,13 @@ struct mesh_table *mesh_table_alloc(int size_order) return newtbl; return newtbl; } } static void __mesh_table_free(struct mesh_table *tbl) { kfree(tbl->hash_buckets); kfree(tbl->hashwlock); kfree(tbl); } void mesh_table_free(struct mesh_table *tbl, bool free_leafs) void mesh_table_free(struct mesh_table *tbl, bool free_leafs) { { struct hlist_head *mesh_hash; struct hlist_head *mesh_hash; Loading @@ -330,9 +337,7 @@ void mesh_table_free(struct mesh_table *tbl, bool free_leafs) } } spin_unlock(&tbl->hashwlock[i]); spin_unlock(&tbl->hashwlock[i]); } } kfree(tbl->hash_buckets); __mesh_table_free(tbl); kfree(tbl->hashwlock); kfree(tbl); } } static void ieee80211_mesh_path_timer(unsigned long data) static void ieee80211_mesh_path_timer(unsigned long data) Loading Loading @@ -378,9 +383,7 @@ struct mesh_table *mesh_table_grow(struct mesh_table *tbl) hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) hlist_for_each_safe(p, q, &newtbl->hash_buckets[i]) tbl->free_node(p, 0); tbl->free_node(p, 0); } } kfree(newtbl->hash_buckets); __mesh_table_free(tbl); kfree(newtbl->hashwlock); kfree(newtbl); endgrow: endgrow: return NULL; return NULL; } } Loading