]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/bnxt_re: Fix max_qp_wrs reported
authorSelvin Xavier <selvin.xavier@broadcom.com>
Mon, 30 Nov 2020 13:13:06 +0000 (05:13 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:25:02 +0000 (13:25 +0100)
[ Upstream commit c63e1c4dfc33d1bdae395ee8fbcbfad4830b12c0 ]

While creating qps, the driver adds one extra entry to the sq size passed
by the ULPs in order to avoid queue full condition.  When ULPs creates QPs
with max_qp_wr reported, driver creates QP with 1 more than the max_wqes
supported by HW. Create QP fails in this case. To avoid this error, reduce
1 entry in max_qp_wqes and report it to the stack.

Link: https://lore.kernel.org/r/1606741986-16477-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/qplib_sp.c

index f53d94c812ec8a390a8bdbccfbf6adaf1ccba7f1..f9ceb19dc993d52e609b884516ebccb2295d7189 100644 (file)
@@ -118,7 +118,7 @@ int bnxt_qplib_get_dev_attr(struct bnxt_qplib_rcfw *rcfw,
         * 128 WQEs needs to be reserved for the HW (8916). Prevent
         * reporting the max number
         */
-       attr->max_qp_wqes -= BNXT_QPLIB_RESERVED_QP_WRS;
+       attr->max_qp_wqes -= BNXT_QPLIB_RESERVED_QP_WRS + 1;
        attr->max_qp_sges = bnxt_qplib_is_chip_gen_p5(rcfw->res->cctx) ?
                            6 : sb->max_sge;
        attr->max_cq = le32_to_cpu(sb->max_cq);