The default CPU socket ID was used while creating the Rx queue and this caused
creation failure in case if hardware was not resided on the default socket.

The patch sets the correct CPU socket ID for the mlx5_rxq_ctrl before
calling the mlx5_rxq_create_devx_rq_resources() which eventually calls
mlx5_devx_rq_create() with correct CPU socket ID.

v2: change patch description, no code change

Fixes: bc5bee028ebc ("net/mlx5: create drop queue using DevX")
Cc: sta...@dpdk.org


Signed-off-by: Thinh Tran <thin...@linux.vnet.ibm.com>
Reviewed-by: David Christensen <d...@linux.vnet.ibm.com>

---
 drivers/net/mlx5/mlx5_devx.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c
index af106bda50..5ab092a259 100644
--- a/drivers/net/mlx5/mlx5_devx.c
+++ b/drivers/net/mlx5/mlx5_devx.c
@@ -947,6 +947,8 @@ mlx5_rxq_devx_obj_drop_create(struct rte_eth_dev *dev)
                rte_errno = ENOMEM;
                goto error;
        }
+       /* set the CPU socket ID where the rxq_ctrl was allocated */
+       rxq_ctrl->socket = socket_id;
        rxq_obj->rxq_ctrl = rxq_ctrl;
        rxq_ctrl->is_hairpin = false;
        rxq_ctrl->sh = priv->sh;
-- 
2.27.0

Reply via email to