diff options
Diffstat (limited to 'net/sctp/protocol.c')
| -rw-r--r-- | net/sctp/protocol.c | 56 | 
1 files changed, 29 insertions, 27 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index eaee00c61139..4a17494d736c 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c @@ -153,7 +153,7 @@ static void sctp_v4_copy_addrlist(struct list_head *addrlist,  	for (ifa = in_dev->ifa_list; ifa; ifa = ifa->ifa_next) {  		/* Add the address to the local list.  */ -		addr = t_new(struct sctp_sockaddr_entry, GFP_ATOMIC); +		addr = kzalloc(sizeof(*addr), GFP_ATOMIC);  		if (addr) {  			addr->a.v4.sin_family = AF_INET;  			addr->a.v4.sin_port = 0; @@ -178,7 +178,7 @@ static void sctp_get_local_addr_list(struct net *net)  	rcu_read_lock();  	for_each_netdev_rcu(net, dev) { -		__list_for_each(pos, &sctp_address_families) { +		list_for_each(pos, &sctp_address_families) {  			af = list_entry(pos, struct sctp_af, list);  			af->copy_addrlist(&net->sctp.local_addr_list, dev);  		} @@ -451,8 +451,8 @@ static void sctp_v4_get_dst(struct sctp_transport *t, union sctp_addr *saddr,  		fl4->fl4_sport = saddr->v4.sin_port;  	} -	SCTP_DEBUG_PRINTK("%s: DST:%pI4, SRC:%pI4 - ", -			  __func__, &fl4->daddr, &fl4->saddr); +	pr_debug("%s: dst:%pI4, src:%pI4 - ", __func__, &fl4->daddr, +		 &fl4->saddr);  	rt = ip_route_output_key(sock_net(sk), fl4);  	if (!IS_ERR(rt)) @@ -513,10 +513,10 @@ out_unlock:  out:  	t->dst = dst;  	if (dst) -		SCTP_DEBUG_PRINTK("rt_dst:%pI4, rt_src:%pI4\n", -				  &fl4->daddr, &fl4->saddr); +		pr_debug("rt_dst:%pI4, rt_src:%pI4\n", +			 &fl4->daddr, &fl4->saddr);  	else -		SCTP_DEBUG_PRINTK("NO ROUTE\n"); +		pr_debug("no route\n");  }  /* For v4, the source address is cached in the route entry(dst). So no need @@ -604,9 +604,9 @@ static void sctp_addr_wq_timeout_handler(unsigned long arg)  	spin_lock_bh(&net->sctp.addr_wq_lock);  	list_for_each_entry_safe(addrw, temp, &net->sctp.addr_waitq, list) { -		SCTP_DEBUG_PRINTK_IPADDR("sctp_addrwq_timo_handler: the first ent in wq %p is ", -		    " for cmd %d at entry %p\n", &net->sctp.addr_waitq, &addrw->a, addrw->state, -		    addrw); +		pr_debug("%s: the first ent in wq:%p is addr:%pISc for cmd:%d at " +			 "entry:%p\n", __func__, &net->sctp.addr_waitq, &addrw->a.sa, +			 addrw->state, addrw);  #if IS_ENABLED(CONFIG_IPV6)  		/* Now we send an ASCONF for each association */ @@ -623,8 +623,10 @@ static void sctp_addr_wq_timeout_handler(unsigned long arg)  			    addrw->state == SCTP_ADDR_NEW) {  				unsigned long timeo_val; -				SCTP_DEBUG_PRINTK("sctp_timo_handler: this is on DAD, trying %d sec later\n", -				    SCTP_ADDRESS_TICK_DELAY); +				pr_debug("%s: this is on DAD, trying %d sec " +					 "later\n", __func__, +					 SCTP_ADDRESS_TICK_DELAY); +  				timeo_val = jiffies;  				timeo_val += msecs_to_jiffies(SCTP_ADDRESS_TICK_DELAY);  				mod_timer(&net->sctp.addr_wq_timer, timeo_val); @@ -641,7 +643,7 @@ static void sctp_addr_wq_timeout_handler(unsigned long arg)  				continue;  			sctp_bh_lock_sock(sk);  			if (sctp_asconf_mgmt(sp, addrw) < 0) -				SCTP_DEBUG_PRINTK("sctp_addrwq_timo_handler: sctp_asconf_mgmt failed\n"); +				pr_debug("%s: sctp_asconf_mgmt failed\n", __func__);  			sctp_bh_unlock_sock(sk);  		}  #if IS_ENABLED(CONFIG_IPV6) @@ -707,9 +709,10 @@ void sctp_addr_wq_mgmt(struct net *net, struct sctp_sockaddr_entry *addr, int cm  	addrw = sctp_addr_wq_lookup(net, addr);  	if (addrw) {  		if (addrw->state != cmd) { -			SCTP_DEBUG_PRINTK_IPADDR("sctp_addr_wq_mgmt offsets existing entry for %d ", -			    " in wq %p\n", addrw->state, &addrw->a, -			    &net->sctp.addr_waitq); +			pr_debug("%s: offsets existing entry for %d, addr:%pISc " +				 "in wq:%p\n", __func__, addrw->state, &addrw->a.sa, +				 &net->sctp.addr_waitq); +  			list_del(&addrw->list);  			kfree(addrw);  		} @@ -725,8 +728,9 @@ void sctp_addr_wq_mgmt(struct net *net, struct sctp_sockaddr_entry *addr, int cm  	}  	addrw->state = cmd;  	list_add_tail(&addrw->list, &net->sctp.addr_waitq); -	SCTP_DEBUG_PRINTK_IPADDR("sctp_addr_wq_mgmt add new entry for cmd:%d ", -	    " in wq %p\n", addrw->state, &addrw->a, &net->sctp.addr_waitq); + +	pr_debug("%s: add new entry for cmd:%d, addr:%pISc in wq:%p\n", +		 __func__, addrw->state, &addrw->a.sa, &net->sctp.addr_waitq);  	if (!timer_pending(&net->sctp.addr_wq_timer)) {  		timeo_val = jiffies; @@ -952,15 +956,14 @@ static inline int sctp_v4_xmit(struct sk_buff *skb,  {  	struct inet_sock *inet = inet_sk(skb->sk); -	SCTP_DEBUG_PRINTK("%s: skb:%p, len:%d, src:%pI4, dst:%pI4\n", -			  __func__, skb, skb->len, -			  &transport->fl.u.ip4.saddr, -			  &transport->fl.u.ip4.daddr); +	pr_debug("%s: skb:%p, len:%d, src:%pI4, dst:%pI4\n", __func__, skb, +		 skb->len, &transport->fl.u.ip4.saddr, &transport->fl.u.ip4.daddr);  	inet->pmtudisc = transport->param_flags & SPP_PMTUD_ENABLE ?  			 IP_PMTUDISC_DO : IP_PMTUDISC_DONT;  	SCTP_INC_STATS(sock_net(&inet->sk), SCTP_MIB_OUTSCTPPACKS); +  	return ip_queue_xmit(skb, &transport->fl);  } @@ -1312,7 +1315,7 @@ static struct pernet_operations sctp_net_ops = {  };  /* Initialize the universe into something sensible.  */ -SCTP_STATIC __init int sctp_init(void) +static __init int sctp_init(void)  {  	int i;  	int status = -EINVAL; @@ -1321,9 +1324,8 @@ SCTP_STATIC __init int sctp_init(void)  	int max_share;  	int order; -	/* SCTP_DEBUG sanity check. */ -	if (!sctp_sanity_check()) -		goto out; +	BUILD_BUG_ON(sizeof(struct sctp_ulpevent) > +		     sizeof(((struct sk_buff *) 0)->cb));  	/* Allocate bind_bucket and chunk caches. */  	status = -ENOBUFS; @@ -1499,7 +1501,7 @@ err_chunk_cachep:  }  /* Exit handler for the SCTP protocol.  */ -SCTP_STATIC __exit void sctp_exit(void) +static __exit void sctp_exit(void)  {  	/* BUG.  This should probably do something useful like clean  	 * up all the remaining associations and all that memory.  | 
