diff options
Diffstat (limited to 'net/dccp')
| -rw-r--r-- | net/dccp/ccid.c | 2 | ||||
| -rw-r--r-- | net/dccp/ccids/ccid2.c | 1 | ||||
| -rw-r--r-- | net/dccp/feat.c | 1 | ||||
| -rw-r--r-- | net/dccp/input.c | 1 | ||||
| -rw-r--r-- | net/dccp/ipv4.c | 9 | ||||
| -rw-r--r-- | net/dccp/ipv6.c | 9 | ||||
| -rw-r--r-- | net/dccp/minisocks.c | 3 | ||||
| -rw-r--r-- | net/dccp/output.c | 1 | ||||
| -rw-r--r-- | net/dccp/probe.c | 1 | ||||
| -rw-r--r-- | net/dccp/proto.c | 17 | 
10 files changed, 29 insertions, 16 deletions
diff --git a/net/dccp/ccid.c b/net/dccp/ccid.c index 49d27c556be..36479ca61e0 100644 --- a/net/dccp/ccid.c +++ b/net/dccp/ccid.c @@ -11,6 +11,8 @@   *	published by the Free Software Foundation.   */ +#include <linux/slab.h> +  #include "ccid.h"  #include "ccids/lib/tfrc.h" diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c index a47a8c918ee..9b3ae9922be 100644 --- a/net/dccp/ccids/ccid2.c +++ b/net/dccp/ccids/ccid2.c @@ -23,6 +23,7 @@  /*   * This implementation should follow RFC 4341   */ +#include <linux/slab.h>  #include "../feat.h"  #include "../ccid.h"  #include "../dccp.h" diff --git a/net/dccp/feat.c b/net/dccp/feat.c index 972b8dc918d..df7dd26cf07 100644 --- a/net/dccp/feat.c +++ b/net/dccp/feat.c @@ -22,6 +22,7 @@   *  2 of the License, or (at your option) any later version.   */  #include <linux/module.h> +#include <linux/slab.h>  #include "ccid.h"  #include "feat.h" diff --git a/net/dccp/input.c b/net/dccp/input.c index 7648f316310..9ec71742602 100644 --- a/net/dccp/input.c +++ b/net/dccp/input.c @@ -12,6 +12,7 @@  #include <linux/dccp.h>  #include <linux/skbuff.h> +#include <linux/slab.h>  #include <net/sock.h> diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index b195c4feaa0..52ffa1cde15 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c @@ -12,6 +12,7 @@  #include <linux/dccp.h>  #include <linux/icmp.h> +#include <linux/slab.h>  #include <linux/module.h>  #include <linux/skbuff.h>  #include <linux/random.h> @@ -998,11 +999,11 @@ static struct inet_protosw dccp_v4_protosw = {  static int __net_init dccp_v4_init_net(struct net *net)  { -	int err; +	if (dccp_hashinfo.bhash == NULL) +		return -ESOCKTNOSUPPORT; -	err = inet_ctl_sock_create(&net->dccp.v4_ctl_sk, PF_INET, -				   SOCK_DCCP, IPPROTO_DCCP, net); -	return err; +	return inet_ctl_sock_create(&net->dccp.v4_ctl_sk, PF_INET, +				    SOCK_DCCP, IPPROTO_DCCP, net);  }  static void __net_exit dccp_v4_exit_net(struct net *net) diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 1aec6349e85..3b11e41a292 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c @@ -14,6 +14,7 @@  #include <linux/module.h>  #include <linux/random.h> +#include <linux/slab.h>  #include <linux/xfrm.h>  #include <net/addrconf.h> @@ -1191,11 +1192,11 @@ static struct inet_protosw dccp_v6_protosw = {  static int __net_init dccp_v6_init_net(struct net *net)  { -	int err; +	if (dccp_hashinfo.bhash == NULL) +		return -ESOCKTNOSUPPORT; -	err = inet_ctl_sock_create(&net->dccp.v6_ctl_sk, PF_INET6, -				   SOCK_DCCP, IPPROTO_DCCP, net); -	return err; +	return inet_ctl_sock_create(&net->dccp.v6_ctl_sk, PF_INET6, +				    SOCK_DCCP, IPPROTO_DCCP, net);  }  static void __net_exit dccp_v6_exit_net(struct net *net) diff --git a/net/dccp/minisocks.c b/net/dccp/minisocks.c index af226a06314..128b089d3ae 100644 --- a/net/dccp/minisocks.c +++ b/net/dccp/minisocks.c @@ -11,6 +11,7 @@   */  #include <linux/dccp.h> +#include <linux/gfp.h>  #include <linux/kernel.h>  #include <linux/skbuff.h>  #include <linux/timer.h> @@ -254,7 +255,7 @@ int dccp_child_process(struct sock *parent, struct sock *child,  		 * in main socket hash table and lock on listening  		 * socket does not protect us more.  		 */ -		sk_add_backlog(child, skb); +		__sk_add_backlog(child, skb);  	}  	bh_unlock_sock(child); diff --git a/net/dccp/output.c b/net/dccp/output.c index d6bb753bf6a..fc3f436440b 100644 --- a/net/dccp/output.c +++ b/net/dccp/output.c @@ -13,6 +13,7 @@  #include <linux/dccp.h>  #include <linux/kernel.h>  #include <linux/skbuff.h> +#include <linux/slab.h>  #include <net/inet_sock.h>  #include <net/sock.h> diff --git a/net/dccp/probe.c b/net/dccp/probe.c index f5b3464f124..078e48d442f 100644 --- a/net/dccp/probe.c +++ b/net/dccp/probe.c @@ -30,6 +30,7 @@  #include <linux/module.h>  #include <linux/kfifo.h>  #include <linux/vmalloc.h> +#include <linux/gfp.h>  #include <net/net_namespace.h>  #include "dccp.h" diff --git a/net/dccp/proto.c b/net/dccp/proto.c index 0ef7061920c..a0e38d8018f 100644 --- a/net/dccp/proto.c +++ b/net/dccp/proto.c @@ -20,6 +20,7 @@  #include <linux/if_arp.h>  #include <linux/init.h>  #include <linux/random.h> +#include <linux/slab.h>  #include <net/checksum.h>  #include <net/inet_sock.h> @@ -1036,7 +1037,7 @@ static int __init dccp_init(void)  		     FIELD_SIZEOF(struct sk_buff, cb));  	rc = percpu_counter_init(&dccp_orphan_count, 0);  	if (rc) -		goto out; +		goto out_fail;  	rc = -ENOBUFS;  	inet_hashinfo_init(&dccp_hashinfo);  	dccp_hashinfo.bind_bucket_cachep = @@ -1125,8 +1126,9 @@ static int __init dccp_init(void)  		goto out_sysctl_exit;  	dccp_timestamping_init(); -out: -	return rc; + +	return 0; +  out_sysctl_exit:  	dccp_sysctl_exit();  out_ackvec_exit: @@ -1135,18 +1137,19 @@ out_free_dccp_mib:  	dccp_mib_exit();  out_free_dccp_bhash:  	free_pages((unsigned long)dccp_hashinfo.bhash, bhash_order); -	dccp_hashinfo.bhash = NULL;  out_free_dccp_locks:  	inet_ehash_locks_free(&dccp_hashinfo);  out_free_dccp_ehash:  	free_pages((unsigned long)dccp_hashinfo.ehash, ehash_order); -	dccp_hashinfo.ehash = NULL;  out_free_bind_bucket_cachep:  	kmem_cache_destroy(dccp_hashinfo.bind_bucket_cachep); -	dccp_hashinfo.bind_bucket_cachep = NULL;  out_free_percpu:  	percpu_counter_destroy(&dccp_orphan_count); -	goto out; +out_fail: +	dccp_hashinfo.bhash = NULL; +	dccp_hashinfo.ehash = NULL; +	dccp_hashinfo.bind_bucket_cachep = NULL; +	return rc;  }  static void __exit dccp_fini(void)  |