]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
RDMA/bnxt_re: Fix the table size for PSN/MSN entries
authorSelvin Xavier <selvin.xavier@broadcom.com>
Mon, 19 Aug 2024 04:47:25 +0000 (21:47 -0700)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 27 Aug 2024 13:15:57 +0000 (10:15 -0300)
HW MSN table size is always a power of 2. So the pages should be mapped
accordingly.

Use the power of two calculation while get the number of PSN/MSN entries.

Fixes: 6f6bfbc595fb ("RDMA/bnxt_re: Expose the MSN table capability for user library")
Link: https://patch.msgid.link/r/1724042847-1481-4-git-send-email-selvin.xavier@broadcom.com
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/bnxt_re/ib_verbs.c

index 5073ab18dc19f73866607a127b8bbab2a59beeca..4dd137b7a5ce4fcd7f770a75f0a878e93b57c12e 100644 (file)
@@ -1042,6 +1042,8 @@ static int bnxt_re_init_user_qp(struct bnxt_re_dev *rdev, struct bnxt_re_pd *pd,
                            qplib_qp->sq.max_wqe :
                            ((qplib_qp->sq.max_wqe * qplib_qp->sq.wqe_size) /
                              sizeof(struct bnxt_qplib_sge));
+               if (_is_host_msn_table(rdev->qplib_res.dattr->dev_cap_flags2))
+                       psn_nume = roundup_pow_of_two(psn_nume);
                bytes += (psn_nume * psn_sz);
        }