RDMA/bnxt_re: Fix entry size during SRQ create
authorSelvin Xavier <selvin.xavier@broadcom.com>
Tue, 13 Oct 2020 06:15:52 +0000 (23:15 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Dec 2020 10:52:57 +0000 (11:52 +0100)
[ Upstream commit b898d5c50cab1f985e77d053eb5c4d2c4a7694ae ]

Only static WQE is supported for SRQ. So always use the max supported SGEs
while calculating SRQ entry size.

Fixes: 2bb3c32c5c5f ("RDMA/bnxt_re: Change wr posting logic to accommodate variable wqes")
Link: https://lore.kernel.org/r/1602569752-12745-1-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Devesh Sharma <devesh.sharma@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/bnxt_re/ib_verbs.c

index f9c999d..266de55 100644 (file)
@@ -1657,8 +1657,8 @@ int bnxt_re_create_srq(struct ib_srq *ib_srq,
        srq->qplib_srq.max_wqe = entries;
 
        srq->qplib_srq.max_sge = srq_init_attr->attr.max_sge;
-       srq->qplib_srq.wqe_size =
-                       bnxt_re_get_rwqe_size(srq->qplib_srq.max_sge);
+        /* 128 byte wqe size for SRQ . So use max sges */
+       srq->qplib_srq.wqe_size = bnxt_re_get_rwqe_size(dev_attr->max_srq_sges);
        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->nq[0].ring_id;