[IPV6]: Fix IPsec datagram fragmentation
[safe/jmp/linux-2.6] / net / ipv6 / af_inet6.c
index ac8772d..bddac0e 100644 (file)
@@ -72,8 +72,6 @@ MODULE_LICENSE("GPL");
 static struct list_head inetsw6[SOCK_MAX];
 static DEFINE_SPINLOCK(inetsw6_lock);
 
-void ipv6_frag_sysctl_init(struct net *net);
-
 static __inline__ struct ipv6_pinfo *inet6_sk_generic(struct sock *sk)
 {
        const int offset = sk->sk_prot->obj_size - sizeof(struct ipv6_pinfo);
@@ -314,7 +312,8 @@ int inet6_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
                         */
                        v4addr = LOOPBACK4_IPV6;
                        if (!(addr_type & IPV6_ADDR_MULTICAST)) {
-                               if (!ipv6_chk_addr(&addr->sin6_addr, dev, 0)) {
+                               if (!ipv6_chk_addr(&init_net, &addr->sin6_addr,
+                                                  dev, 0)) {
                                        if (dev)
                                                dev_put(dev);
                                        err = -EADDRNOTAVAIL;
@@ -722,10 +721,6 @@ static void cleanup_ipv6_mibs(void)
 static int inet6_net_init(struct net *net)
 {
        net->ipv6.sysctl.bindv6only = 0;
-       net->ipv6.sysctl.frags.high_thresh = 256 * 1024;
-       net->ipv6.sysctl.frags.low_thresh = 192 * 1024;
-       net->ipv6.sysctl.frags.timeout = IPV6_FRAG_TIMEOUT;
-       net->ipv6.sysctl.frags.secret_interval = 10 * 60 * HZ;
        net->ipv6.sysctl.flush_delay = 0;
        net->ipv6.sysctl.ip6_rt_max_size = 4096;
        net->ipv6.sysctl.ip6_rt_gc_min_interval = HZ / 2;
@@ -735,7 +730,6 @@ static int inet6_net_init(struct net *net)
        net->ipv6.sysctl.ip6_rt_mtu_expires = 10*60*HZ;
        net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40;
        net->ipv6.sysctl.icmpv6_time = 1*HZ;
-       ipv6_frag_sysctl_init(net);
 
        return 0;
 }