RDMA/hns: Fix to support 64K page for srq
authorLijun Ou <oulijun@huawei.com>
Thu, 24 Oct 2019 09:21:56 +0000 (17:21 +0800)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 28 Oct 2019 16:33:06 +0000 (13:33 -0300)
SRQ's page size configuration of BA and buffer should depend on current
PAGE_SHIFT, or it can't work in scenario of 64K page.

Fixes: c7bcb13442e1 ("RDMA/hns: Add SRQ support for hip08 kernel mode")
Link: https://lore.kernel.org/r/1571908917-16220-2-git-send-email-liweihang@hisilicon.com
Signed-off-by: Lijun Ou <oulijun@huawei.com>
Signed-off-by: Weihang Li <liweihang@hisilicon.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index 14e24b4..7218f6d 100644 (file)
@@ -6088,11 +6088,11 @@ static void hns_roce_v2_write_srqc(struct hns_roce_dev *hr_dev,
        roce_set_field(srq_context->byte_44_idxbufpgsz_addr,
                       SRQC_BYTE_44_SRQ_IDX_BA_PG_SZ_M,
                       SRQC_BYTE_44_SRQ_IDX_BA_PG_SZ_S,
-                      hr_dev->caps.idx_ba_pg_sz);
+                      hr_dev->caps.idx_ba_pg_sz + PG_SHIFT_OFFSET);
        roce_set_field(srq_context->byte_44_idxbufpgsz_addr,
                       SRQC_BYTE_44_SRQ_IDX_BUF_PG_SZ_M,
                       SRQC_BYTE_44_SRQ_IDX_BUF_PG_SZ_S,
-                      hr_dev->caps.idx_buf_pg_sz);
+                      hr_dev->caps.idx_buf_pg_sz + PG_SHIFT_OFFSET);
 
        srq_context->idx_nxt_blk_addr =
                cpu_to_le32(mtts_idx[1] >> PAGE_ADDR_SHIFT);