Commit e94b6c5b authored by Chengchang Tang's avatar Chengchang Tang Committed by Juan Zhou
Browse files

RDMA/hns: Fix GMV table pagesize

maillist inclusion
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I9HASN
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=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: d6d91e46 ("RDMA/hns: Add support for configuring GMV table")
Signed-off-by: default avatarChengchang Tang <tangchengchang@huawei.com>
Signed-off-by: default avatarJunxian Huang <huangjunxian6@hisilicon.com>
Link: https://lore.kernel.org/r/20240412091616.370789-8-huangjunxian6@hisilicon.com


Signed-off-by: default avatarLeon Romanovsky <leon@kernel.org>
Signed-off-by: default avatarJuan Zhou <zhoujuan51@h-partners.com>
parent 7dcee85f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2260,7 +2260,7 @@ static void apply_func_caps(struct hns_roce_dev *hr_dev)
					 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);