diff options
Diffstat (limited to 'net/ipv6')
| -rw-r--r-- | net/ipv6/addrconf.c | 2 | ||||
| -rw-r--r-- | net/ipv6/netfilter.c | 7 | 
2 files changed, 8 insertions, 1 deletions
| diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c index d1ab6ab29a55..d1b2d8034b54 100644 --- a/net/ipv6/addrconf.c +++ b/net/ipv6/addrconf.c @@ -1487,7 +1487,7 @@ static int ipv6_count_addresses(struct inet6_dev *idev)  }  int ipv6_chk_addr(struct net *net, const struct in6_addr *addr, -		  struct net_device *dev, int strict) +		  const struct net_device *dev, int strict)  {  	struct inet6_ifaddr *ifp;  	unsigned int hash = inet6_addr_hash(addr); diff --git a/net/ipv6/netfilter.c b/net/ipv6/netfilter.c index 72836f40b730..95f3f1da0d7f 100644 --- a/net/ipv6/netfilter.c +++ b/net/ipv6/netfilter.c @@ -10,6 +10,7 @@  #include <linux/netfilter.h>  #include <linux/netfilter_ipv6.h>  #include <linux/export.h> +#include <net/addrconf.h>  #include <net/dst.h>  #include <net/ipv6.h>  #include <net/ip6_route.h> @@ -186,6 +187,10 @@ static __sum16 nf_ip6_checksum_partial(struct sk_buff *skb, unsigned int hook,  	return csum;  }; +static const struct nf_ipv6_ops ipv6ops = { +	.chk_addr	= ipv6_chk_addr, +}; +  static const struct nf_afinfo nf_ip6_afinfo = {  	.family			= AF_INET6,  	.checksum		= nf_ip6_checksum, @@ -198,6 +203,7 @@ static const struct nf_afinfo nf_ip6_afinfo = {  int __init ipv6_netfilter_init(void)  { +	RCU_INIT_POINTER(nf_ipv6_ops, &ipv6ops);  	return nf_register_afinfo(&nf_ip6_afinfo);  } @@ -206,5 +212,6 @@ int __init ipv6_netfilter_init(void)   */  void ipv6_netfilter_fini(void)  { +	RCU_INIT_POINTER(nf_ipv6_ops, NULL);  	nf_unregister_afinfo(&nf_ip6_afinfo);  } | 
