[PATCH 1/2] net/mana: fix Rx interrupt vector beyond device count
Orgad Shaneh
orgads at gmail.com
Mon Nov 2 08:08:08 CET 2026
With Rx interrupts enabled, the CQ of Rx queue i is created on
completion vector i. The device may expose fewer completion vectors
than Rx queues (the RHEL 8.10 mana_ib driver reports one), so
ibv_create_cq() fails with EINVAL for queue 1 and the port does not
start.
Spread the queues over the vectors the device has.
Fixes: afd5d170727e ("net/mana: support Rx interrupts")
Cc: stable at dpdk.org
Signed-off-by: Orgad Shaneh <orgads at gmail.com>
---
Builds on main (meson -Dwerror=true, gcc 14, rdma-core 56).
In use on 26.07 on an Azure MANA VF.
.mailmap | 1 +
drivers/net/mana/rx.c | 3 ++-
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/.mailmap b/.mailmap
index 08317e81e6..61d5c6df00 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1265,6 +1265,7 @@ Omkar Maslekar <omkar.maslekar at intel.com>
Omri Mor <omrimor2 at illinois.edu>
Ophir Munk <ophirmu at nvidia.com> <ophirmu at mellanox.com>
Or Ami <ora at mellanox.com>
+Orgad Shaneh <orgads at gmail.com>
Ori Kam <orika at nvidia.com> <orika at mellanox.com>
Ouyang Hao <ouyanghao at tencent.com>
Owen Hilyard <ohilyard at iol.unh.edu>
diff --git a/drivers/net/mana/rx.c b/drivers/net/mana/rx.c
index 274c6e88ce..aa21136167 100644
--- a/drivers/net/mana/rx.c
+++ b/drivers/net/mana/rx.c
@@ -289,7 +289,8 @@ mana_start_rx_queues(struct rte_eth_dev *dev)
rxq->cq = ibv_create_cq(priv->ib_ctx, rxq->num_desc,
NULL, rxq->channel,
- rxq->channel ? i : 0);
+ rxq->channel ?
+ i % priv->ib_ctx->num_comp_vectors : 0);
if (!rxq->cq) {
ret = -errno;
DRV_LOG(ERR, "failed to create rx cq queue %d", i);
--
2.53.0
More information about the stable
mailing list