sfc: use the new __netdev_tx_sent_queue BQL optimisation
authorEdward Cree <ecree@solarflare.com>
Thu, 8 Nov 2018 19:47:19 +0000 (19:47 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Nov 2018 04:01:29 +0000 (20:01 -0800)
As added in 3e59020abf0f ("net: bql: add __netdev_tx_sent_queue()"), which
 see for performance rationale.

Signed-off-by: Edward Cree <ecree@solarflare.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sfc/tx.c

index c3ad564ac4c0fe2aad3933aed8fe3efdc0bc4fe2..22eb059086f76749c62a15a499cdf38161b47173 100644 (file)
@@ -553,13 +553,10 @@ netdev_tx_t efx_enqueue_skb(struct efx_tx_queue *tx_queue, struct sk_buff *skb)
        if (!data_mapped && (efx_tx_map_data(tx_queue, skb, segments)))
                goto err;
 
-       /* Update BQL */
-       netdev_tx_sent_queue(tx_queue->core_txq, skb_len);
-
        efx_tx_maybe_stop_queue(tx_queue);
 
        /* Pass off to hardware */
-       if (!xmit_more || netif_xmit_stopped(tx_queue->core_txq)) {
+       if (__netdev_tx_sent_queue(tx_queue->core_txq, skb_len, xmit_more)) {
                struct efx_tx_queue *txq2 = efx_tx_queue_partner(tx_queue);
 
                /* There could be packets left on the partner queue if those