Skip to content

Commit 9fe0af3

Browse files
author
Sreekanth Reddy
committed
RDMA/bnxt_re: Fix budget handling of notification queue
JIRA: https://issues.redhat.com/browse/RHEL-76569 JIRA: https://issues.redhat.com/browse/RHEL-72652 commit 6b395d3 Author: Kashyap Desai <kashyap.desai@broadcom.com> Date: Mon Mar 24 09:39:35 2025 +0530 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> Signed-off-by: Sreekanth Reddy <sreeredd@redhat.com>
1 parent 4c48c2c commit 9fe0af3

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)