ixgbe: support skb->xmit_more in netdev_ops->ndo_start_xmit()
authorDaniel Borkmann <dborkman@redhat.com>
Sun, 24 Aug 2014 13:42:16 +0000 (15:42 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 25 Aug 2014 23:29:46 +0000 (16:29 -0700)
This implements the deferred tail pointer flush API for the ixgbe
driver. Similar version also proposed longer time ago by Alexander Duyck.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c

index 87bd53fdd209152dc14a09fbee8101582237c6e8..ba9ceaa824f84d34aa7c6b7dbf50d8c8562ab3f9 100644 (file)
@@ -6958,9 +6958,10 @@ static void ixgbe_tx_map(struct ixgbe_ring *tx_ring,
 
        tx_ring->next_to_use = i;
 
-       /* notify HW of packet */
-       ixgbe_write_tail(tx_ring, i);
-
+       if (!skb->xmit_more) {
+               /* notify HW of packet */
+               ixgbe_write_tail(tx_ring, i);
+       }
        return;
 dma_error:
        dev_err(tx_ring->dev, "TX DMA map failed\n");