aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv/originator.c
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2011-05-02 02:27:50 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2011-05-08 01:51:14 -0400
commitae179ae433bb4ef6b6179c5c1c7b6cc7dc01c670 (patch)
tree158c66a1003073865ec1e4e1a2659a3f23f79cbf /net/batman-adv/originator.c
parenteb340b2f804860a51a0b92e35fd36742b6c2d6b7 (diff)
batman,rcu: convert call_rcu(neigh_node_free_rcu) to kfree()
The RCU callback neigh_node_free_rcu() just calls kfree(), so we can use kfree_rcu() instead of call_rcu(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Cc: Marek Lindner <lindner_marek@yahoo.de> Cc: Simon Wunderlich <siwu@hrz.tu-chemnitz.de> Acked-by: David S. Miller <davem@davemloft.net> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Acked-by: Sven Eckelmann <sven@narfation.org>
Diffstat (limited to 'net/batman-adv/originator.c')
-rw-r--r--net/batman-adv/originator.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/net/batman-adv/originator.c b/net/batman-adv/originator.c
index 0b9133022d2d..ed23a5895d6c 100644
--- a/net/batman-adv/originator.c
+++ b/net/batman-adv/originator.c
@@ -56,18 +56,10 @@ err:
56 return 0; 56 return 0;
57} 57}
58 58
59static void neigh_node_free_rcu(struct rcu_head *rcu)
60{
61 struct neigh_node *neigh_node;
62
63 neigh_node = container_of(rcu, struct neigh_node, rcu);
64 kfree(neigh_node);
65}
66
67void neigh_node_free_ref(struct neigh_node *neigh_node) 59void neigh_node_free_ref(struct neigh_node *neigh_node)
68{ 60{
69 if (atomic_dec_and_test(&neigh_node->refcount)) 61 if (atomic_dec_and_test(&neigh_node->refcount))
70 call_rcu(&neigh_node->rcu, neigh_node_free_rcu); 62 kfree_rcu(neigh_node, rcu);
71} 63}
72 64
73struct neigh_node *create_neighbor(struct orig_node *orig_node, 65struct neigh_node *create_neighbor(struct orig_node *orig_node,