]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - net/ipv4/ipip.c
Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel...
[net-next-2.6.git] / net / ipv4 / ipip.c
index 9e78f11da786d62e7b5a130ef45dfec3b61f8088..cd300aaee78f542630f40ab9a34f9b10af8eec9e 100644 (file)
@@ -414,8 +414,7 @@ static int ipip_rcv(struct sk_buff *skb)
 
                ipip_ecn_decapsulate(iph, skb);
 
-               if (netif_rx(skb) == NET_RX_DROP)
-                       tunnel->dev->stats.rx_dropped++;
+               netif_rx(skb);
 
                rcu_read_unlock();
                return 0;
@@ -677,6 +676,7 @@ ipip_tunnel_ioctl (struct net_device *dev, struct ifreq *ifr, int cmd)
                                }
                                t = netdev_priv(dev);
                                ipip_tunnel_unlink(ipn, t);
+                               synchronize_net();
                                t->parms.iph.saddr = p.iph.saddr;
                                t->parms.iph.daddr = p.iph.daddr;
                                memcpy(dev->dev_addr, &p.iph.saddr, 4);
@@ -767,6 +767,7 @@ static void ipip_tunnel_setup(struct net_device *dev)
        dev->iflink             = 0;
        dev->addr_len           = 4;
        dev->features           |= NETIF_F_NETNS_LOCAL;
+       dev->features           |= NETIF_F_LLTX;
        dev->priv_flags         &= ~IFF_XMIT_DST_RELEASE;
 }