Commit a3276ab0 authored by Chengchang Tang's avatar Chengchang Tang Committed by ZhouJuan
Browse files

RDMA/hns: Fix hns_roce_table_get return value

mainline inclusion
from mainline-v6.5-rc1
commit cf5b608f
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I7R61Q
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cf5b608fb0e369c473a8303cad6ddb386505e5b8

----------------------------------------------------------------------

The return value of set_hem has been fixed to ENODEV, which will lead a
diagnostic information missing.

Fixes: 9a443537 ("IB/hns: Add driver files for hns RoCE driver")
Link: https://lore.kernel.org/r/20230523121641.3132102-3-huangjunxian6@hisilicon.com


Signed-off-by: default avatarChengchang Tang <tangchengchang@huawei.com>
Signed-off-by: default avatarJunxian Huang <huangjunxian6@hisilicon.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@nvidia.com>
Signed-off-by: default avatarJuan Zhou <zhoujuan51@h-partners.com>
parent e562e75b
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -595,11 +595,12 @@ int hns_roce_table_get(struct hns_roce_dev *hr_dev,
	}

	/* Set HEM base address(128K/page, pa) to Hardware */
	if (hr_dev->hw->set_hem(hr_dev, table, obj, HEM_HOP_STEP_DIRECT)) {
	ret = hr_dev->hw->set_hem(hr_dev, table, obj, HEM_HOP_STEP_DIRECT);
	if (ret) {
		hns_roce_free_hem(hr_dev, table->hem[i]);
		table->hem[i] = NULL;
		ret = -ENODEV;
		dev_err(dev, "set HEM base address to HW failed.\n");
		dev_err(dev, "set HEM base address to HW failed, ret = %d.\n",
			ret);
		goto out;
	}