Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/linville...
[safe/jmp/linux-2.6] / net / ipv6 / ip6_tunnel.c
index a1d6045..c595bbe 100644 (file)
@@ -1036,18 +1036,13 @@ ip6ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
        return 0;
 }
 
-static int
+static netdev_tx_t
 ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
 {
        struct ip6_tnl *t = netdev_priv(dev);
        struct net_device_stats *stats = &t->dev->stats;
        int ret;
 
-       if (t->recursion++) {
-               stats->collisions++;
-               goto tx_err;
-       }
-
        switch (skb->protocol) {
        case htons(ETH_P_IP):
                ret = ip4ip6_tnl_xmit(skb, dev);
@@ -1062,14 +1057,12 @@ ip6_tnl_xmit(struct sk_buff *skb, struct net_device *dev)
        if (ret < 0)
                goto tx_err;
 
-       t->recursion--;
        return NETDEV_TX_OK;
 
 tx_err:
        stats->tx_errors++;
        stats->tx_dropped++;
        kfree_skb(skb);
-       t->recursion--;
        return NETDEV_TX_OK;
 }