net,rcu: convert call_rcu(__gen_kill_estimator) to kfree_rcu()
authorLai Jiangshan <laijs@cn.fujitsu.com>
Fri, 18 Mar 2011 03:43:26 +0000 (11:43 +0800)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 8 May 2011 05:50:57 +0000 (22:50 -0700)
The rcu callback __gen_kill_estimator() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(__gen_kill_estimator).

Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
net/core/gen_estimator.c

index 7c2373321b74317c1c36918c20726cba10490768..43b03dd71e85da9b6d2043beb531cd4289d0531a 100644 (file)
@@ -249,13 +249,6 @@ int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
 }
 EXPORT_SYMBOL(gen_new_estimator);
 
-static void __gen_kill_estimator(struct rcu_head *head)
-{
-       struct gen_estimator *e = container_of(head,
-                                       struct gen_estimator, e_rcu);
-       kfree(e);
-}
-
 /**
  * gen_kill_estimator - remove a rate estimator
  * @bstats: basic statistics
@@ -279,7 +272,7 @@ void gen_kill_estimator(struct gnet_stats_basic_packed *bstats,
                write_unlock(&est_lock);
 
                list_del_rcu(&e->list);
-               call_rcu(&e->e_rcu, __gen_kill_estimator);
+               kfree_rcu(e, e_rcu);
        }
        spin_unlock_bh(&est_tree_lock);
 }