Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6
[firefly-linux-kernel-4.4.55.git] / net / ipv6 / mcast.c
index ff62e33ead07d805aacfb354106a69bc7b7f2b10..3e6ebcdb4779761a5b35a362b9453d7017551f50 100644 (file)
@@ -201,10 +201,6 @@ int ipv6_sock_mc_join(struct sock *sk, int ifindex, const struct in6_addr *addr)
        return 0;
 }
 
-static void ipv6_mc_socklist_reclaim(struct rcu_head *head)
-{
-       kfree(container_of(head, struct ipv6_mc_socklist, rcu));
-}
 /*
  *     socket leave on multicast group
  */
@@ -239,7 +235,7 @@ int ipv6_sock_mc_drop(struct sock *sk, int ifindex, const struct in6_addr *addr)
                                (void) ip6_mc_leave_src(sk, mc_lst, NULL);
                        rcu_read_unlock();
                        atomic_sub(sizeof(*mc_lst), &sk->sk_omem_alloc);
-                       call_rcu(&mc_lst->rcu, ipv6_mc_socklist_reclaim);
+                       kfree_rcu(mc_lst, rcu);
                        return 0;
                }
        }
@@ -307,7 +303,7 @@ void ipv6_sock_mc_close(struct sock *sk)
                rcu_read_unlock();
 
                atomic_sub(sizeof(*mc_lst), &sk->sk_omem_alloc);
-               call_rcu(&mc_lst->rcu, ipv6_mc_socklist_reclaim);
+               kfree_rcu(mc_lst, rcu);
 
                spin_lock(&ipv6_sk_mc_lock);
        }