From: Paul E. McKenney <paul...@linux.vnet.ibm.com> The RCU callback softif_neigh_free_rcu() just calls kfree(), so we can use kfree_rcu() instead of call_rcu().
Signed-off-by: Paul E. McKenney <paul...@linux.vnet.ibm.com> Cc: Marek Lindner <lindner_ma...@yahoo.de> Cc: Simon Wunderlich <s...@hrz.tu-chemnitz.de> Acked-by: David S. Miller <da...@davemloft.net> Reviewed-by: Josh Triplett <j...@joshtriplett.org> Signed-off-by: Sven Eckelmann <s...@narfation.org> --- Rebased on top of current master + newest version from Paul E. McKenney soft-interface.c | 10 +--------- 1 files changed, 1 insertions(+), 9 deletions(-) diff --git a/soft-interface.c b/soft-interface.c index c76a33e..d5aa609 100644 --- a/soft-interface.c +++ b/soft-interface.c @@ -72,18 +72,10 @@ int my_skb_head_push(struct sk_buff *skb, unsigned int len) return 0; } -static void softif_neigh_free_rcu(struct rcu_head *rcu) -{ - struct softif_neigh *softif_neigh; - - softif_neigh = container_of(rcu, struct softif_neigh, rcu); - kfree(softif_neigh); -} - static void softif_neigh_free_ref(struct softif_neigh *softif_neigh) { if (atomic_dec_and_test(&softif_neigh->refcount)) - call_rcu(&softif_neigh->rcu, softif_neigh_free_rcu); + kfree_rcu(softif_neigh, rcu); } static void softif_neigh_vid_free_rcu(struct rcu_head *rcu) -- 1.7.5.1