net/bntx: use new API to get iova address XXX
[dpdk.git] / drivers / net / bnxt / bnxt_txr.c
index 60cc174..676551e 100644 (file)
@@ -181,7 +181,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
                txbd->flags_type |= TX_BD_LONG_FLAGS_LHINT_GTE2K;
        else
                txbd->flags_type |= lhint_arr[txbd->len >> 9];
-       txbd->addr = rte_cpu_to_le_32(RTE_MBUF_DATA_DMA_ADDR(tx_buf->mbuf));
+       txbd->addr = rte_cpu_to_le_32(rte_mbuf_data_iova(tx_buf->mbuf));
 
        if (long_bd) {
                txbd->flags_type |= TX_BD_LONG_TYPE_TX_BD_LONG;
@@ -257,7 +257,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
                tx_buf = &txr->tx_buf_ring[txr->tx_prod];
 
                txbd = &txr->tx_desc_ring[txr->tx_prod];
-               txbd->addr = rte_cpu_to_le_32(RTE_MBUF_DATA_DMA_ADDR(m_seg));
+               txbd->addr = rte_cpu_to_le_32(rte_mbuf_data_iova(m_seg));
                txbd->flags_type = TX_BD_SHORT_TYPE_TX_BD_SHORT;
                txbd->len = m_seg->data_len;
 
@@ -313,6 +313,9 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq)
 
                        if (!CMP_VALID(txcmp, raw_cons, cpr->cp_ring_struct))
                                break;
+                       cpr->valid = FLIP_VALID(cons,
+                                               cpr->cp_ring_struct->ring_mask,
+                                               cpr->valid);
 
                        if (CMP_TYPE(txcmp) == TX_CMPL_TYPE_TX_L2)
                                nb_tx_pkts++;