]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
RDMA/hns: Fix GMV table pagesize
authorChengchang Tang <tangchengchang@huawei.com>
Fri, 12 Apr 2024 09:16:13 +0000 (17:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jun 2024 11:39:31 +0000 (13:39 +0200)
[ Upstream commit ee045493283403969591087bd405fa280103282a ]

GMV's BA table only supports 4K pages. Currently, PAGESIZE is used to
calculate gmv_bt_num, which will cause an abnormal number of gmv_bt_num
in a 64K OS.

Fixes: d6d91e46210f ("RDMA/hns: Add support for configuring GMV table")
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://lore.kernel.org/r/20240412091616.370789-8-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index 7376f012ece120c85e1c869a5b022ad1ba418d50..e541de3e6165ba7e034298d6095fb458ef117ab1 100644 (file)
@@ -2202,7 +2202,7 @@ static void apply_func_caps(struct hns_roce_dev *hr_dev)
                caps->gid_table_len[0] = caps->gmv_bt_num *
                                        (HNS_HW_PAGE_SIZE / caps->gmv_entry_sz);
 
-               caps->gmv_entry_num = caps->gmv_bt_num * (PAGE_SIZE /
+               caps->gmv_entry_num = caps->gmv_bt_num * (HNS_HW_PAGE_SIZE /
                                                          caps->gmv_entry_sz);
        } else {
                u32 func_num = max_t(u32, 1, hr_dev->func_num);