Use new modify_qp functions for Tx object creation in DevX and Verbs
modules.
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/net/mlx5/linux/mlx5_verbs.c | 34 +++-------------------------------
drivers/net/mlx5/mlx5_devx.c | 7 ++-----
drivers/net/mlx5/mlx5_txq.c | 2 --
3 files changed, 5 insertions(+), 38 deletions(-)
@@ -922,7 +922,6 @@
struct mlx5_txq_ctrl *txq_ctrl =
container_of(txq_data, struct mlx5_txq_ctrl, txq);
struct mlx5_txq_obj *txq_obj = txq_ctrl->obj;
- struct ibv_qp_attr mod;
unsigned int cqe_n;
struct mlx5dv_qp qp;
struct mlx5dv_cq cq_info;
@@ -956,37 +955,10 @@
rte_errno = errno;
goto error;
}
- mod = (struct ibv_qp_attr){
- /* Move the QP to this state. */
- .qp_state = IBV_QPS_INIT,
- /* IB device port number. */
- .port_num = (uint8_t)priv->dev_port,
- };
- ret = mlx5_glue->modify_qp(txq_obj->qp, &mod,
- (IBV_QP_STATE | IBV_QP_PORT));
- if (ret) {
- DRV_LOG(ERR,
- "Port %u Tx queue %u QP state to IBV_QPS_INIT failed.",
- dev->data->port_id, idx);
- rte_errno = errno;
- goto error;
- }
- mod = (struct ibv_qp_attr){
- .qp_state = IBV_QPS_RTR
- };
- ret = mlx5_glue->modify_qp(txq_obj->qp, &mod, IBV_QP_STATE);
+ ret = mlx5_ibv_modify_qp(txq_obj, MLX5_TXQ_MOD_RST2RDY,
+ (uint8_t)priv->dev_port);
if (ret) {
- DRV_LOG(ERR,
- "Port %u Tx queue %u QP state to IBV_QPS_RTR failed.",
- dev->data->port_id, idx);
- rte_errno = errno;
- goto error;
- }
- mod.qp_state = IBV_QPS_RTS;
- ret = mlx5_glue->modify_qp(txq_obj->qp, &mod, IBV_QP_STATE);
- if (ret) {
- DRV_LOG(ERR,
- "Port %u Tx queue %u QP state to IBV_QPS_RTS failed.",
+ DRV_LOG(ERR, "Port %u Tx queue %u QP state modifying failed.",
dev->data->port_id, idx);
rte_errno = errno;
goto error;
@@ -1237,7 +1237,6 @@
return -rte_errno;
#else
struct mlx5_dev_ctx_shared *sh = priv->sh;
- struct mlx5_devx_modify_sq_attr msq_attr = { 0 };
struct mlx5_txq_obj *txq_obj = txq_ctrl->obj;
void *reg_addr;
uint32_t cqe_n;
@@ -1286,13 +1285,11 @@
*txq_data->qp_db = 0;
txq_data->qp_num_8s = txq_obj->sq_devx->id << 8;
/* Change Send Queue state to Ready-to-Send. */
- msq_attr.sq_state = MLX5_SQC_STATE_RST;
- msq_attr.state = MLX5_SQC_STATE_RDY;
- ret = mlx5_devx_cmd_modify_sq(txq_obj->sq_devx, &msq_attr);
+ ret = mlx5_devx_modify_sq(txq_obj, MLX5_TXQ_MOD_RST2RDY, 0);
if (ret) {
rte_errno = errno;
DRV_LOG(ERR,
- "Port %u Tx queue %u SP state to SQC_STATE_RDY failed.",
+ "Port %u Tx queue %u SQ state to SQC_STATE_RDY failed.",
dev->data->port_id, idx);
goto error;
}
@@ -16,8 +16,6 @@
#include <rte_common.h>
#include <rte_eal_paging.h>
-#include <mlx5_glue.h>
-#include <mlx5_devx_cmds.h>
#include <mlx5_common.h>
#include <mlx5_common_mr.h>
#include <mlx5_malloc.h>