X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fmlx5%2Fmlx5_trigger.c;h=aa323ad5cee9e84df5909b7eca6711dd35f61195;hb=8d0715f054b44750c2e1553d6af29487bcea25d8;hp=54353eea9aa8478eb9466d0ea3fc08b55345f345;hpb=93403560ba1f2a6de2630ebf61f63c9a17176b7a;p=dpdk.git diff --git a/drivers/net/mlx5/mlx5_trigger.c b/drivers/net/mlx5/mlx5_trigger.c index 54353eea9a..aa323ad5ce 100644 --- a/drivers/net/mlx5/mlx5_trigger.c +++ b/drivers/net/mlx5/mlx5_trigger.c @@ -99,7 +99,14 @@ mlx5_rxq_start(struct rte_eth_dev *dev) struct mlx5_priv *priv = dev->data->dev_private; unsigned int i; int ret = 0; + enum mlx5_rxq_obj_type obj_type = MLX5_RXQ_OBJ_TYPE_IBV; + for (i = 0; i < priv->rxqs_n; ++i) { + if ((*priv->rxqs)[i]->lro) { + obj_type = MLX5_RXQ_OBJ_TYPE_DEVX_RQ; + break; + } + } /* Allocate/reuse/resize mempool for Multi-Packet RQ. */ if (mlx5_mprq_alloc_mp(dev)) { /* Should not release Rx queues but return immediately. */ @@ -123,10 +130,13 @@ mlx5_rxq_start(struct rte_eth_dev *dev) ret = rxq_alloc_elts(rxq_ctrl); if (ret) goto error; - rxq_ctrl->obj = mlx5_rxq_obj_new(dev, i); + rxq_ctrl->obj = mlx5_rxq_obj_new(dev, i, obj_type); if (!rxq_ctrl->obj) goto error; - rxq_ctrl->wqn = rxq_ctrl->obj->wq->wq_num; + if (obj_type == MLX5_RXQ_OBJ_TYPE_IBV) + rxq_ctrl->wqn = rxq_ctrl->obj->wq->wq_num; + else if (obj_type == MLX5_RXQ_OBJ_TYPE_DEVX_RQ) + rxq_ctrl->wqn = rxq_ctrl->obj->rq->id; } return 0; error: