diff options
author | 2011-03-15 18:00:14 +0800 | |
---|---|---|
committer | 2011-05-07 22:50:50 -0700 | |
commit | e57859854aaac9b7ce0db3fe4959190a1a80b60a (patch) | |
tree | 05aee1dc0345c59ba425fa26c5eeebaef6a20938 /net/ipv6/addrconf.c | |
parent | net,rcu: convert call_rcu(in6_dev_finish_destroy_rcu) to kfree_rcu() (diff) | |
download | linux-e57859854aaac9b7ce0db3fe4959190a1a80b60a.tar.gz linux-e57859854aaac9b7ce0db3fe4959190a1a80b60a.tar.bz2 linux-e57859854aaac9b7ce0db3fe4959190a1a80b60a.zip |
net,rcu: convert call_rcu(inet6_ifa_finish_destroy_rcu) to kfree_rcu()
The rcu callback inet6_ifa_finish_destroy_rcu() just calls a kfree(),
so we use kfree_rcu() instead of the call_rcu(inet6_ifa_finish_destroy_rcu).
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>
Diffstat (limited to 'net/ipv6/addrconf.c')
-rw-r--r-- | net/ipv6/addrconf.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index c406f564b772..8f13d88d7dba 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -529,12 +529,6 @@ static int addrconf_fixup_forwarding(struct ctl_table *table, int *p, int old) } #endif -static void inet6_ifa_finish_destroy_rcu(struct rcu_head *head) -{ - struct inet6_ifaddr *ifp = container_of(head, struct inet6_ifaddr, rcu); - kfree(ifp); -} - /* Nobody refers to this ifaddr, destroy it */ void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp) { @@ -555,7 +549,7 @@ void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp) } dst_release(&ifp->rt->dst); - call_rcu(&ifp->rcu, inet6_ifa_finish_destroy_rcu); + kfree_rcu(ifp, rcu); } static void |