net/virtio: fix incorrect cast of void *
[dpdk.git] / drivers / net / mlx4 / mlx4_txq.c
index fbb028a..7882a4d 100644 (file)
@@ -261,7 +261,9 @@ mlx4_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
        }
        *txq = (struct txq){
                .priv = priv,
-               .stats.idx = idx,
+               .stats = {
+                       .idx = idx,
+               },
                .socket = socket,
                .elts_n = desc,
                .elts = elts,
@@ -276,6 +278,10 @@ mlx4_tx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc,
                        RTE_MIN(MLX4_PMD_TX_PER_COMP_REQ, desc / 4),
                .elts_comp_cd_init =
                        RTE_MIN(MLX4_PMD_TX_PER_COMP_REQ, desc / 4),
+               .csum = priv->hw_csum,
+               .csum_l2tun = priv->hw_csum_l2tun,
+               /* Enable Tx loopback for VF devices. */
+               .lb = !!priv->vf,
                .bounce_buf = bounce_buf,
        };
        txq->cq = ibv_create_cq(priv->ctx, desc, NULL, NULL, 0);
@@ -402,7 +408,7 @@ mlx4_tx_queue_release(void *dpdk_txq)
                if (!txq->mp2mr[i].mp)
                        break;
                assert(txq->mp2mr[i].mr);
-               claim_zero(ibv_dereg_mr(txq->mp2mr[i].mr));
+               mlx4_mr_put(txq->mp2mr[i].mr);
        }
        rte_free(txq);
 }