mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 11:50:43 +09:00
RDMA/irdma: Set irdma_cq cq_num field during CQ create
[ Upstream commit 5575b7646b94c0afb0f4c0d86e00e13cf3397a62 ]
The driver maintains a CQ table that is used to ensure that a CQ is
still valid when processing CQ related AEs. When a CQ is destroyed,
the table entry is cleared, using irdma_cq.cq_num as the index. This
field was never being set, so it was just always clearing out entry
0.
Additionally, the cq_num field size was increased to accommodate HW
supporting more than 64K CQs.
Fixes: b48c24c2d7 ("RDMA/irdma: Implement device supported verb APIs")
Signed-off-by: Jacob Moroni <jmoroni@google.com>
Link: https://patch.msgid.link/20250923142439.943930-1-jmoroni@google.com
Acked-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d559ddd687
commit
bc8c9b8f63
@@ -2077,6 +2077,7 @@ static int irdma_create_cq(struct ib_cq *ibcq,
|
||||
spin_lock_init(&iwcq->lock);
|
||||
INIT_LIST_HEAD(&iwcq->resize_list);
|
||||
INIT_LIST_HEAD(&iwcq->cmpl_generated);
|
||||
iwcq->cq_num = cq_num;
|
||||
info.dev = dev;
|
||||
ukinfo->cq_size = max(entries, 4);
|
||||
ukinfo->cq_id = cq_num;
|
||||
|
||||
@@ -113,7 +113,7 @@ struct irdma_mr {
|
||||
struct irdma_cq {
|
||||
struct ib_cq ibcq;
|
||||
struct irdma_sc_cq sc_cq;
|
||||
u16 cq_num;
|
||||
u32 cq_num;
|
||||
bool user_mode;
|
||||
atomic_t armed;
|
||||
enum irdma_cmpl_notify last_notify;
|
||||
|
||||
Reference in New Issue
Block a user