diff options
Diffstat (limited to 'net/ipv6/mcast.c')
| -rw-r--r-- | net/ipv6/mcast.c | 44 | 
1 files changed, 20 insertions, 24 deletions
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c index 76b893771e6..3e6ebcdb477 100644 --- a/net/ipv6/mcast.c +++ b/net/ipv6/mcast.c @@ -92,16 +92,16 @@ static void mld_gq_timer_expire(unsigned long data);  static void mld_ifc_timer_expire(unsigned long data);  static void mld_ifc_event(struct inet6_dev *idev);  static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *pmc); -static void mld_del_delrec(struct inet6_dev *idev, struct in6_addr *addr); +static void mld_del_delrec(struct inet6_dev *idev, const struct in6_addr *addr);  static void mld_clear_delrec(struct inet6_dev *idev);  static int sf_setstate(struct ifmcaddr6 *pmc);  static void sf_markstate(struct ifmcaddr6 *pmc);  static void ip6_mc_clear_src(struct ifmcaddr6 *pmc); -static int ip6_mc_del_src(struct inet6_dev *idev, struct in6_addr *pmca, -			  int sfmode, int sfcount, struct in6_addr *psfsrc, +static int ip6_mc_del_src(struct inet6_dev *idev, const struct in6_addr *pmca, +			  int sfmode, int sfcount, const struct in6_addr *psfsrc,  			  int delta); -static int ip6_mc_add_src(struct inet6_dev *idev, struct in6_addr *pmca, -			  int sfmode, int sfcount, struct in6_addr *psfsrc, +static int ip6_mc_add_src(struct inet6_dev *idev, const struct in6_addr *pmca, +			  int sfmode, int sfcount, const struct in6_addr *psfsrc,  			  int delta);  static int ip6_mc_leave_src(struct sock *sk, struct ipv6_mc_socklist *iml,  			    struct inet6_dev *idev); @@ -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;  		}  	} @@ -250,7 +246,7 @@ int ipv6_sock_mc_drop(struct sock *sk, int ifindex, const struct in6_addr *addr)  /* called with rcu_read_lock() */  static struct inet6_dev *ip6_mc_find_dev_rcu(struct net *net, -					     struct in6_addr *group, +					     const struct in6_addr *group,  					     int ifindex)  {  	struct net_device *dev = NULL; @@ -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);  	} @@ -451,7 +447,7 @@ done:  int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf)  { -	struct in6_addr *group; +	const struct in6_addr *group;  	struct ipv6_mc_socklist *pmc;  	struct inet6_dev *idev;  	struct ipv6_pinfo *inet6 = inet6_sk(sk); @@ -542,7 +538,7 @@ int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf,  	struct group_filter __user *optval, int __user *optlen)  {  	int err, i, count, copycount; -	struct in6_addr *group; +	const struct in6_addr *group;  	struct ipv6_mc_socklist *pmc;  	struct inet6_dev *idev;  	struct ipv6_pinfo *inet6 = inet6_sk(sk); @@ -752,7 +748,7 @@ static void mld_add_delrec(struct inet6_dev *idev, struct ifmcaddr6 *im)  	spin_unlock_bh(&idev->mc_lock);  } -static void mld_del_delrec(struct inet6_dev *idev, struct in6_addr *pmca) +static void mld_del_delrec(struct inet6_dev *idev, const struct in6_addr *pmca)  {  	struct ifmcaddr6 *pmc, *pmc_prev;  	struct ip6_sf_list *psf, *psf_next; @@ -1052,7 +1048,7 @@ static void igmp6_group_queried(struct ifmcaddr6 *ma, unsigned long resptime)  /* mark EXCLUDE-mode sources */  static int mld_xmarksources(struct ifmcaddr6 *pmc, int nsrcs, -	struct in6_addr *srcs) +	const struct in6_addr *srcs)  {  	struct ip6_sf_list *psf;  	int i, scount; @@ -1080,7 +1076,7 @@ static int mld_xmarksources(struct ifmcaddr6 *pmc, int nsrcs,  }  static int mld_marksources(struct ifmcaddr6 *pmc, int nsrcs, -	struct in6_addr *srcs) +	const struct in6_addr *srcs)  {  	struct ip6_sf_list *psf;  	int i, scount; @@ -1115,7 +1111,7 @@ int igmp6_event_query(struct sk_buff *skb)  {  	struct mld2_query *mlh2 = NULL;  	struct ifmcaddr6 *ma; -	struct in6_addr *group; +	const struct in6_addr *group;  	unsigned long max_delay;  	struct inet6_dev *idev;  	struct mld_msg *mld; @@ -1821,7 +1817,7 @@ err_out:  }  static int ip6_mc_del1_src(struct ifmcaddr6 *pmc, int sfmode, -	struct in6_addr *psfsrc) +	const struct in6_addr *psfsrc)  {  	struct ip6_sf_list *psf, *psf_prev;  	int rv = 0; @@ -1857,8 +1853,8 @@ static int ip6_mc_del1_src(struct ifmcaddr6 *pmc, int sfmode,  	return rv;  } -static int ip6_mc_del_src(struct inet6_dev *idev, struct in6_addr *pmca, -			  int sfmode, int sfcount, struct in6_addr *psfsrc, +static int ip6_mc_del_src(struct inet6_dev *idev, const struct in6_addr *pmca, +			  int sfmode, int sfcount, const struct in6_addr *psfsrc,  			  int delta)  {  	struct ifmcaddr6 *pmc; @@ -1918,7 +1914,7 @@ static int ip6_mc_del_src(struct inet6_dev *idev, struct in6_addr *pmca,   * Add multicast single-source filter to the interface list   */  static int ip6_mc_add1_src(struct ifmcaddr6 *pmc, int sfmode, -	struct in6_addr *psfsrc, int delta) +	const struct in6_addr *psfsrc, int delta)  {  	struct ip6_sf_list *psf, *psf_prev; @@ -2021,8 +2017,8 @@ static int sf_setstate(struct ifmcaddr6 *pmc)  /*   * Add multicast source filter list to the interface list   */ -static int ip6_mc_add_src(struct inet6_dev *idev, struct in6_addr *pmca, -			  int sfmode, int sfcount, struct in6_addr *psfsrc, +static int ip6_mc_add_src(struct inet6_dev *idev, const struct in6_addr *pmca, +			  int sfmode, int sfcount, const struct in6_addr *psfsrc,  			  int delta)  {  	struct ifmcaddr6 *pmc;  |