Skip to content

Commit 6b395d3

Browse files
kadesai16jgunthorpe
authored andcommitted
RDMA/bnxt_re: Fix budget handling of notification queue
The cited commit in Fixes tag introduced a bug which can cause hang of completion queue processing because of notification queue budget goes to zero. Found while doing nfs over rdma mount and umount. Below message is noticed because of the existing bug. kernel: cm_destroy_id_wait_timeout: cm_id=00000000ff6c6cc6 timed out. state 11 -> 0, refcnt=1 Fix to handle this issue - Driver will not change nq->budget upon create and destroy of cq and srq rdma resources. Fixes: cb97b37 ("RDMA/bnxt_re: Refurbish CQ to NQ hash calculation") Link: https://patch.msgid.link/r/20250324040935.90182-1-kalesh-anakkur.purayil@broadcom.com Signed-off-by: Kashyap Desai <kashyap.desai@broadcom.com> Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent 0af2f6b commit 6b395d3

File tree

1 file changed

+0
-5
lines changed

1 file changed

+0
-5
lines changed

drivers/infiniband/hw/bnxt_re/ib_verbs.c

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1785,8 +1785,6 @@ int bnxt_re_destroy_srq(struct ib_srq *ib_srq, struct ib_udata *udata)
17851785
bnxt_qplib_destroy_srq(&rdev->qplib_res, qplib_srq);
17861786
ib_umem_release(srq->umem);
17871787
atomic_dec(&rdev->stats.res.srq_count);
1788-
if (nq)
1789-
nq->budget--;
17901788
return 0;
17911789
}
17921790

@@ -1908,8 +1906,6 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq,
19081906
goto fail;
19091907
}
19101908
}
1911-
if (nq)
1912-
nq->budget++;
19131909
active_srqs = atomic_inc_return(&rdev->stats.res.srq_count);
19141910
if (active_srqs > rdev->stats.res.srq_watermark)
19151911
rdev->stats.res.srq_watermark = active_srqs;
@@ -3079,7 +3075,6 @@ int bnxt_re_destroy_cq(struct ib_cq *ib_cq, struct ib_udata *udata)
30793075
ib_umem_release(cq->umem);
30803076

30813077
atomic_dec(&rdev->stats.res.cq_count);
3082-
nq->budget--;
30833078
kfree(cq->cql);
30843079
return 0;
30853080
}

0 commit comments

Comments
 (0)