Message ID | 1740237621-29291-1-git-send-email-selvin.xavier@broadcom.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | [rdma-rc] RDMA/bnxt_re : Fix the page details for the srq created by Kernel consumers | expand |
On Sat, 22 Feb 2025 07:20:21 -0800, Selvin Xavier wrote: > While using nvme target with use_srq on, below kernel panic is noticed. > > [ 549.698111] bnxt_en 0000:41:00.0 enp65s0np0: FEC autoneg off encoding: Clause 91 RS(544,514) > [ 566.393619] Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI > .. > [ 566.393799] <TASK> > [ 566.393807] ? __die_body+0x1a/0x60 > [ 566.393823] ? die+0x38/0x60 > [ 566.393835] ? do_trap+0xe4/0x110 > [ 566.393847] ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re] > [ 566.393867] ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re] > [ 566.393881] ? do_error_trap+0x7c/0x120 > [ 566.393890] ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re] > [ 566.393911] ? exc_divide_error+0x34/0x50 > [ 566.393923] ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re] > [ 566.393939] ? asm_exc_divide_error+0x16/0x20 > [ 566.393966] ? bnxt_qplib_alloc_init_hwq+0x1d4/0x580 [bnxt_re] > [ 566.393997] bnxt_qplib_create_srq+0xc9/0x340 [bnxt_re] > [ 566.394040] bnxt_re_create_srq+0x335/0x3b0 [bnxt_re] > [ 566.394057] ? srso_return_thunk+0x5/0x5f > [ 566.394068] ? __init_swait_queue_head+0x4a/0x60 > [ 566.394090] ib_create_srq_user+0xa7/0x150 [ib_core] > [ 566.394147] nvmet_rdma_queue_connect+0x7d0/0xbe0 [nvmet_rdma] > [ 566.394174] ? lock_release+0x22c/0x3f0 > [ 566.394187] ? srso_return_thunk+0x5/0x5f > > [...] Applied, thanks! [1/1] RDMA/bnxt_re : Fix the page details for the srq created by Kernel consumers https://git.kernel.org/rdma/rdma/c/b66535356a4834 Best regards,
diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c index 2de101d..6f5db32 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c @@ -1870,6 +1870,8 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq, srq->qplib_srq.threshold = srq_init_attr->attr.srq_limit; srq->srq_limit = srq_init_attr->attr.srq_limit; srq->qplib_srq.eventq_hw_ring_id = rdev->nqr->nq[0].ring_id; + srq->qplib_srq.sg_info.pgsize = PAGE_SIZE; + srq->qplib_srq.sg_info.pgshft = PAGE_SHIFT; nq = &rdev->nqr->nq[0]; if (udata) {