mac80211: Convert call_rcu() to kfree_rcu(), drop mesh_gate_node_reclaim()
authorPaul E. McKenney <paul.mckenney@linaro.org>
Sat, 7 Jan 2012 01:10:37 +0000 (17:10 -0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Tue, 21 Feb 2012 17:03:33 +0000 (09:03 -0800)
The call_rcu() in mesh_gate_del() invokes mesh_gate_node_reclaim(),
which simply calls kfree().  So convert the call_rcu() to kfree_rcu(),
allowing mesh_gate_node_reclaim() to be eliminated.

Signed-off-by: Paul E. McKenney <paul.mckenney@linaro.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: "John W. Linville" <linville@tuxdriver.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
net/mac80211/mesh_pathtbl.c

index edf167e3b8f391d65784bc56f3a3f43fc07b9169..30420bc1f69971d8d64d4dbeda6981dae189746a 100644 (file)
@@ -413,12 +413,6 @@ struct mesh_path *mesh_path_lookup_by_idx(int idx, struct ieee80211_sub_if_data
        return NULL;
 }
 
-static void mesh_gate_node_reclaim(struct rcu_head *rp)
-{
-       struct mpath_node *node = container_of(rp, struct mpath_node, rcu);
-       kfree(node);
-}
-
 /**
  * mesh_path_add_gate - add the given mpath to a mesh gate to our path table
  * @mpath: gate path to add to table
@@ -479,7 +473,7 @@ static int mesh_gate_del(struct mesh_table *tbl, struct mesh_path *mpath)
                if (gate->mpath == mpath) {
                        spin_lock_bh(&tbl->gates_lock);
                        hlist_del_rcu(&gate->list);
-                       call_rcu(&gate->rcu, mesh_gate_node_reclaim);
+                       kfree_rcu(gate, rcu);
                        spin_unlock_bh(&tbl->gates_lock);
                        mpath->sdata->u.mesh.num_gates--;
                        mpath->is_gate = false;