mlx4: dont orphan skbs in mlx4_en_xmit()
authorEric Dumazet <edumazet@google.com>
Fri, 28 Sep 2012 07:53:26 +0000 (07:53 +0000)
committerDavid S. Miller <davem@davemloft.net>
Mon, 1 Oct 2012 21:01:57 +0000 (17:01 -0400)
After commit e22979d96a55d (mlx4_en: Moving to Interrupts for TX
completions) we no longer need to orphan skbs in mlx4_en_xmit()
since skb wont stay a long time in TX ring before their release.

Orphaning skbs in ndo_start_xmit() should be avoided as much as
possible, since it breaks TCP Small Queue or other flow control
mechanisms (per socket limits)

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Yevgeny Petrilin <yevgenyp@mellanox.com>
Cc: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlx4/en_tx.c

index 10bba09c44ea508d047123aeafb5e001b6bbd1be..c10e3a6de09f042a02be933d8aa1ca928207fe6d 100644 (file)
@@ -712,10 +712,6 @@ netdev_tx_t mlx4_en_xmit(struct sk_buff *skb, struct net_device *dev)
        if (bounce)
                tx_desc = mlx4_en_bounce_to_desc(priv, ring, index, desc_size);
 
-       /* Run destructor before passing skb to HW */
-       if (likely(!skb_shared(skb)))
-               skb_orphan(skb);
-
        if (ring->bf_enabled && desc_size <= MAX_BF && !bounce && !vlan_tag) {
                *(__be32 *) (&tx_desc->ctrl.vlan_tag) |= cpu_to_be32(ring->doorbell_qpn);
                op_own |= htonl((bf_index & 0xffff) << 8);