diff options
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/addrconf.c | 1 | ||||
| -rw-r--r-- | net/ipv6/addrconf_core.c | 1 | ||||
| -rw-r--r-- | net/ipv6/exthdrs.c | 1 | ||||
| -rw-r--r-- | net/ipv6/exthdrs_core.c | 1 | ||||
| -rw-r--r-- | net/ipv6/fib6_rules.c | 1 | ||||
| -rw-r--r-- | net/ipv6/ip6_flowlabel.c | 1 | ||||
| -rw-r--r-- | net/ipv6/ip6mr.c | 1 | ||||
| -rw-r--r-- | net/ipv6/netfilter.c | 12 | ||||
| -rw-r--r-- | net/ipv6/netfilter/nf_conntrack_reasm.c | 7 | ||||
| -rw-r--r-- | net/ipv6/proc.c | 1 | ||||
| -rw-r--r-- | net/ipv6/raw.c | 1 | ||||
| -rw-r--r-- | net/ipv6/reassembly.c | 1 | ||||
| -rw-r--r-- | net/ipv6/route.c | 1 | ||||
| -rw-r--r-- | net/ipv6/sysctl_net_ipv6.c | 1 | ||||
| -rw-r--r-- | net/ipv6/tcp_ipv6.c | 12 | ||||
| -rw-r--r-- | net/ipv6/udp.c | 12 | ||||
| -rw-r--r-- | net/ipv6/udplite.c | 14 | ||||
| -rw-r--r-- | net/ipv6/xfrm6_state.c | 1 | 
18 files changed, 55 insertions, 15 deletions
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index d0611a5de45..cf88df82e2c 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -87,6 +87,7 @@  #include <linux/proc_fs.h>  #include <linux/seq_file.h> +#include <linux/export.h>  /* Set to 3 to get tracing... */  #define ACONF_DEBUG 2 diff --git a/net/ipv6/addrconf_core.c b/net/ipv6/addrconf_core.c index 6b03826552e..399287e595d 100644 --- a/net/ipv6/addrconf_core.c +++ b/net/ipv6/addrconf_core.c @@ -3,6 +3,7 @@   * not configured or static.   */ +#include <linux/export.h>  #include <net/ipv6.h>  #define IPV6_ADDR_SCOPE_TYPE(scope)	((scope) << 16) diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c index 1318de4c3e8..bf22a225f42 100644 --- a/net/ipv6/exthdrs.c +++ b/net/ipv6/exthdrs.c @@ -30,6 +30,7 @@  #include <linux/in6.h>  #include <linux/icmpv6.h>  #include <linux/slab.h> +#include <linux/export.h>  #include <net/dst.h>  #include <net/sock.h> diff --git a/net/ipv6/exthdrs_core.c b/net/ipv6/exthdrs_core.c index 14ed0a955b5..37f548b7f6d 100644 --- a/net/ipv6/exthdrs_core.c +++ b/net/ipv6/exthdrs_core.c @@ -2,6 +2,7 @@   * IPv6 library code, needed by static components when full IPv6 support is   * not configured or static.   */ +#include <linux/export.h>  #include <net/ipv6.h>  /* diff --git a/net/ipv6/fib6_rules.c b/net/ipv6/fib6_rules.c index 34d244df907..295571576f8 100644 --- a/net/ipv6/fib6_rules.c +++ b/net/ipv6/fib6_rules.c @@ -14,6 +14,7 @@   */  #include <linux/netdevice.h> +#include <linux/export.h>  #include <net/fib_rules.h>  #include <net/ipv6.h> diff --git a/net/ipv6/ip6_flowlabel.c b/net/ipv6/ip6_flowlabel.c index 54303945019..4566dbd916d 100644 --- a/net/ipv6/ip6_flowlabel.c +++ b/net/ipv6/ip6_flowlabel.c @@ -21,6 +21,7 @@  #include <linux/proc_fs.h>  #include <linux/seq_file.h>  #include <linux/slab.h> +#include <linux/export.h>  #include <net/net_namespace.h>  #include <net/sock.h> diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c index def0538e241..449a9185b8f 100644 --- a/net/ipv6/ip6mr.c +++ b/net/ipv6/ip6mr.c @@ -51,6 +51,7 @@  #include <linux/pim.h>  #include <net/addrconf.h>  #include <linux/netfilter_ipv6.h> +#include <linux/export.h>  #include <net/ip6_checksum.h>  struct mr6_table { diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c index 30fcee46544..db31561cc8d 100644 --- a/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c @@ -3,6 +3,7 @@  #include <linux/ipv6.h>  #include <linux/netfilter.h>  #include <linux/netfilter_ipv6.h> +#include <linux/export.h>  #include <net/dst.h>  #include <net/ipv6.h>  #include <net/ip6_route.h> @@ -100,9 +101,16 @@ static int nf_ip6_route(struct net *net, struct dst_entry **dst,  		.pinet6 = (struct ipv6_pinfo *) &fake_pinfo,  	};  	const void *sk = strict ? &fake_sk : NULL; +	struct dst_entry *result; +	int err; -	*dst = ip6_route_output(net, sk, &fl->u.ip6); -	return (*dst)->error; +	result = ip6_route_output(net, sk, &fl->u.ip6); +	err = result->error; +	if (err) +		dst_release(result); +	else +		*dst = result; +	return err;  }  __sum16 nf_ip6_checksum(struct sk_buff *skb, unsigned int hook, diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c index e8762c73b17..38f00b0298d 100644 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c @@ -182,7 +182,6 @@ fq_find(__be32 id, u32 user, struct in6_addr *src, struct in6_addr *dst)  	return container_of(q, struct nf_ct_frag6_queue, q);  oom: -	pr_debug("Can't alloc new queue\n");  	return NULL;  } @@ -370,10 +369,10 @@ nf_ct_frag6_reasm(struct nf_ct_frag6_queue *fq, struct net_device *dev)  		struct sk_buff *clone;  		int i, plen = 0; -		if ((clone = alloc_skb(0, GFP_ATOMIC)) == NULL) { -			pr_debug("Can't alloc skb\n"); +		clone = alloc_skb(0, GFP_ATOMIC); +		if (clone == NULL)  			goto out_oom; -		} +  		clone->next = head->next;  		head->next = clone;  		skb_shinfo(clone)->frag_list = skb_shinfo(head)->frag_list; diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c index 18ff5df7ec0..1008ce94bc3 100644 --- a/net/ipv6/proc.c +++ b/net/ipv6/proc.c @@ -21,6 +21,7 @@  #include <linux/proc_fs.h>  #include <linux/seq_file.h>  #include <linux/stddef.h> +#include <linux/export.h>  #include <net/net_namespace.h>  #include <net/ip.h>  #include <net/sock.h> diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c index 6f7824e1cea..331af3b882a 100644 --- a/net/ipv6/raw.c +++ b/net/ipv6/raw.c @@ -61,6 +61,7 @@  #include <linux/proc_fs.h>  #include <linux/seq_file.h> +#include <linux/export.h>  static struct raw_hashinfo raw_v6_hashinfo = {  	.lock = __RW_LOCK_UNLOCKED(raw_v6_hashinfo.lock), diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c index cc22099ac8b..dfb164e9051 100644 --- a/net/ipv6/reassembly.c +++ b/net/ipv6/reassembly.c @@ -42,6 +42,7 @@  #include <linux/jhash.h>  #include <linux/skbuff.h>  #include <linux/slab.h> +#include <linux/export.h>  #include <net/sock.h>  #include <net/snmp.h> diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 57b82dc1ae9..8473016bba4 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -26,6 +26,7 @@  #include <linux/capability.h>  #include <linux/errno.h> +#include <linux/export.h>  #include <linux/types.h>  #include <linux/times.h>  #include <linux/socket.h> diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c index 6dcf5e7d661..166a57c47d3 100644 --- a/net/ipv6/sysctl_net_ipv6.c +++ b/net/ipv6/sysctl_net_ipv6.c @@ -10,6 +10,7 @@  #include <linux/in6.h>  #include <linux/ipv6.h>  #include <linux/slab.h> +#include <linux/export.h>  #include <net/ndisc.h>  #include <net/ipv6.h>  #include <net/addrconf.h> diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c index 10b2b3165a1..36131d122a6 100644 --- a/net/ipv6/tcp_ipv6.c +++ b/net/ipv6/tcp_ipv6.c @@ -2161,12 +2161,18 @@ out:  	return 0;  } +static const struct file_operations tcp6_afinfo_seq_fops = { +	.owner   = THIS_MODULE, +	.open    = tcp_seq_open, +	.read    = seq_read, +	.llseek  = seq_lseek, +	.release = seq_release_net +}; +  static struct tcp_seq_afinfo tcp6_seq_afinfo = {  	.name		= "tcp6",  	.family		= AF_INET6, -	.seq_fops	= { -		.owner		= THIS_MODULE, -	}, +	.seq_fops	= &tcp6_afinfo_seq_fops,  	.seq_ops	= {  		.show		= tcp6_seq_show,  	}, diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c index f4ca0a5b345..846f4757eb8 100644 --- a/net/ipv6/udp.c +++ b/net/ipv6/udp.c @@ -1424,13 +1424,19 @@ int udp6_seq_show(struct seq_file *seq, void *v)  	return 0;  } +static const struct file_operations udp6_afinfo_seq_fops = { +	.owner    = THIS_MODULE, +	.open     = udp_seq_open, +	.read     = seq_read, +	.llseek   = seq_lseek, +	.release  = seq_release_net +}; +  static struct udp_seq_afinfo udp6_seq_afinfo = {  	.name		= "udp6",  	.family		= AF_INET6,  	.udp_table	= &udp_table, -	.seq_fops	= { -		.owner	=	THIS_MODULE, -	}, +	.seq_fops	= &udp6_afinfo_seq_fops,  	.seq_ops	= {  		.show		= udp6_seq_show,  	}, diff --git a/net/ipv6/udplite.c b/net/ipv6/udplite.c index 986c4de5292..1d08e21d9f6 100644 --- a/net/ipv6/udplite.c +++ b/net/ipv6/udplite.c @@ -11,6 +11,7 @@   *		as published by the Free Software Foundation; either version   *		2 of the License, or (at your option) any later version.   */ +#include <linux/export.h>  #include "udp_impl.h"  static int udplitev6_rcv(struct sk_buff *skb) @@ -93,13 +94,20 @@ void udplitev6_exit(void)  }  #ifdef CONFIG_PROC_FS + +static const struct file_operations udplite6_afinfo_seq_fops = { +	.owner    = THIS_MODULE, +	.open     = udp_seq_open, +	.read     = seq_read, +	.llseek   = seq_lseek, +	.release  = seq_release_net +}; +  static struct udp_seq_afinfo udplite6_seq_afinfo = {  	.name		= "udplite6",  	.family		= AF_INET6,  	.udp_table	= &udplite_table, -	.seq_fops	= { -		.owner	=	THIS_MODULE, -	}, +	.seq_fops	= &udplite6_afinfo_seq_fops,  	.seq_ops	= {  		.show		= udp6_seq_show,  	}, diff --git a/net/ipv6/xfrm6_state.c b/net/ipv6/xfrm6_state.c index 248f0b2a7ee..f2d72b8a3fa 100644 --- a/net/ipv6/xfrm6_state.c +++ b/net/ipv6/xfrm6_state.c @@ -15,6 +15,7 @@  #include <linux/pfkeyv2.h>  #include <linux/ipsec.h>  #include <linux/netfilter_ipv6.h> +#include <linux/export.h>  #include <net/dsfield.h>  #include <net/ipv6.h>  #include <net/addrconf.h>  |