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