nfp: don't add ring size to index calculations
authorJakub Kicinski <jakub.kicinski@netronome.com>
Mon, 29 May 2017 00:53:03 +0000 (17:53 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 May 2017 15:27:07 +0000 (11:27 -0400)
Adding ring size to index calculation is pointless, since index
will be masked with ring size - 1.

Suggested-by: David Laight <David.Laight@ACULAB.COM>
Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/netronome/nfp/nfp_net_common.c

index 9312a737fbc9cb3d7c0ec9e6fbb3a2537152e823..68013d048e9d503c03cd0354cf034ded0ea24535 100644 (file)
@@ -928,7 +928,7 @@ static void nfp_net_tx_complete(struct nfp_net_tx_ring *tx_ring)
        if (qcp_rd_p == tx_ring->qcp_rd_p)
                return;
 
-       todo = D_IDX(tx_ring, qcp_rd_p + tx_ring->cnt - tx_ring->qcp_rd_p);
+       todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
 
        while (todo--) {
                idx = D_IDX(tx_ring, tx_ring->rd_p++);
@@ -999,7 +999,7 @@ static bool nfp_net_xdp_complete(struct nfp_net_tx_ring *tx_ring)
        if (qcp_rd_p == tx_ring->qcp_rd_p)
                return true;
 
-       todo = D_IDX(tx_ring, qcp_rd_p + tx_ring->cnt - tx_ring->qcp_rd_p);
+       todo = D_IDX(tx_ring, qcp_rd_p - tx_ring->qcp_rd_p);
 
        done_all = todo <= NFP_NET_XDP_MAX_COMPLETE;
        todo = min(todo, NFP_NET_XDP_MAX_COMPLETE);