diff mbox series

[for-next,3/6] RDMA/hns: Fix PBL page MTR find

Message ID 20221126102911.2921820-4-xuhaoyue1@hisilicon.com (mailing list archive)
State Accepted
Delegated to: Jason Gunthorpe
Headers show
Series Bugfix for GID and PBL page | expand

Commit Message

Haoyue Xu Nov. 26, 2022, 10:29 a.m. UTC
From: Chengchang Tang <tangchengchang@huawei.com>

Now, The address of the first two pages in the MR will be searched,
which use to speed up the lookup of the pbl table for hardware.
An exception will occur when there is only one page in this MR.
This patch fix the number of page to search.

Fixes: 9b2cf76c9f05 ("RDMA/hns: Optimize PBL buffer allocation process")
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Haoyue Xu <xuhaoyue1@hisilicon.com>
---
 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
index a8f8c790d31d..41835cb05983 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c
@@ -3274,7 +3274,8 @@  static int set_mtpt_pbl(struct hns_roce_dev *hr_dev,
 	int i, count;
 
 	count = hns_roce_mtr_find(hr_dev, &mr->pbl_mtr, 0, pages,
-				  ARRAY_SIZE(pages), &pbl_ba);
+				  min_t(int, ARRAY_SIZE(pages), mr->npages),
+				  &pbl_ba);
 	if (count < 1) {
 		ibdev_err(ibdev, "failed to find PBL mtr, count = %d.\n",
 			  count);