aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/mesh_pathtbl.c')
-rw-r--r--net/mac80211/mesh_pathtbl.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/net/mac80211/mesh_pathtbl.c b/net/mac80211/mesh_pathtbl.c
index 7d050ed6fe5..6d28bd434ce 100644
--- a/net/mac80211/mesh_pathtbl.c
+++ b/net/mac80211/mesh_pathtbl.c
@@ -746,10 +746,8 @@ void mesh_plink_broken(struct sta_info *sta)
746static void mesh_path_node_reclaim(struct rcu_head *rp) 746static void mesh_path_node_reclaim(struct rcu_head *rp)
747{ 747{
748 struct mpath_node *node = container_of(rp, struct mpath_node, rcu); 748 struct mpath_node *node = container_of(rp, struct mpath_node, rcu);
749 struct ieee80211_sub_if_data *sdata = node->mpath->sdata;
750 749
751 del_timer_sync(&node->mpath->timer); 750 del_timer_sync(&node->mpath->timer);
752 atomic_dec(&sdata->u.mesh.mpaths);
753 kfree(node->mpath); 751 kfree(node->mpath);
754 kfree(node); 752 kfree(node);
755} 753}
@@ -757,8 +755,9 @@ static void mesh_path_node_reclaim(struct rcu_head *rp)
757/* needs to be called with the corresponding hashwlock taken */ 755/* needs to be called with the corresponding hashwlock taken */
758static void __mesh_path_del(struct mesh_table *tbl, struct mpath_node *node) 756static void __mesh_path_del(struct mesh_table *tbl, struct mpath_node *node)
759{ 757{
760 struct mesh_path *mpath; 758 struct mesh_path *mpath = node->mpath;
761 mpath = node->mpath; 759 struct ieee80211_sub_if_data *sdata = node->mpath->sdata;
760
762 spin_lock(&mpath->state_lock); 761 spin_lock(&mpath->state_lock);
763 mpath->flags |= MESH_PATH_RESOLVING; 762 mpath->flags |= MESH_PATH_RESOLVING;
764 if (mpath->is_gate) 763 if (mpath->is_gate)
@@ -766,6 +765,7 @@ static void __mesh_path_del(struct mesh_table *tbl, struct mpath_node *node)
766 hlist_del_rcu(&node->list); 765 hlist_del_rcu(&node->list);
767 call_rcu(&node->rcu, mesh_path_node_reclaim); 766 call_rcu(&node->rcu, mesh_path_node_reclaim);
768 spin_unlock(&mpath->state_lock); 767 spin_unlock(&mpath->state_lock);
768 atomic_dec(&sdata->u.mesh.mpaths);
769 atomic_dec(&tbl->entries); 769 atomic_dec(&tbl->entries);
770} 770}
771 771