netfilter: nfnetlink_log: fix wrong skbuff size calculation
[safe/jmp/linux-2.6] / net / ipv6 / sit.c
index 1ebf99a..664ab82 100644 (file)
@@ -188,9 +188,9 @@ static struct ip_tunnel * ipip6_tunnel_locate(struct net *net,
        }
 
        nt = netdev_priv(dev);
-       ipip6_tunnel_init(dev);
 
        nt->parms = *parms;
+       ipip6_tunnel_init(dev);
 
        if (parms->i_flags & SIT_ISATAP)
                dev->priv_flags |= IFF_ISATAP;
@@ -454,7 +454,7 @@ static int ipip6_err(struct sk_buff *skb, u32 info)
        if (t->parms.iph.ttl == 0 && type == ICMP_TIME_EXCEEDED)
                goto out;
 
-       if (jiffies - t->err_time < IPTUNNEL_ERR_TIMEO)
+       if (time_before(jiffies, t->err_time + IPTUNNEL_ERR_TIMEO))
                t->err_count++;
        else
                t->err_count = 1;
@@ -658,7 +658,8 @@ static int ipip6_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
        }
 
        if (tunnel->err_count > 0) {
-               if (jiffies - tunnel->err_time < IPTUNNEL_ERR_TIMEO) {
+               if (time_before(jiffies,
+                               tunnel->err_time + IPTUNNEL_ERR_TIMEO)) {
                        tunnel->err_count--;
                        dst_link_failure(skb);
                } else
@@ -1025,9 +1026,9 @@ static int sit_init_net(struct net *net)
                err = -ENOMEM;
                goto err_alloc_dev;
        }
+       dev_net_set(sitn->fb_tunnel_dev, net);
 
        ipip6_fb_tunnel_init(sitn->fb_tunnel_dev);
-       dev_net_set(sitn->fb_tunnel_dev, net);
 
        if ((err = register_netdev(sitn->fb_tunnel_dev)))
                goto err_reg_dev;