Add write memory barrier before writing tail pointer.

Fixes c95584dc2b18 ("ixgbe: new vectorized functions for Rx/Tx")

Signed-off-by: Eric Kinzie <ehkinzie at gmail.com>
---
 drivers/net/ixgbe/ixgbe_rxtx_vec.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec.c 
b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
index abd10f6..b601de8 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec.c
@@ -123,6 +123,7 @@ ixgbe_rxq_rearm(struct ixgbe_rx_queue *rxq)
                             (rxq->nb_rx_desc - 1) : (rxq->rxrearm_start - 1));

        /* Update the tail pointer on the NIC */
+       rte_wmb();
        IXGBE_PCI_REG_WRITE(rxq->rdt_reg_addr, rx_id);
 }

@@ -645,6 +646,8 @@ ixgbe_xmit_pkts_vec(void *tx_queue, struct rte_mbuf 
**tx_pkts,

        txq->tx_tail = tx_id;

+       /* update tail pointer */
+       rte_wmb();
        IXGBE_PCI_REG_WRITE(txq->tdt_reg_addr, txq->tx_tail);

        return nb_pkts;
-- 
1.7.10.4

Reply via email to