RDMA/hns: Fix hns_roce_table_get return value
authorChengchang Tang <tangchengchang@huawei.com>
Tue, 23 May 2023 12:16:40 +0000 (20:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Jul 2023 14:21:25 +0000 (16:21 +0200)
[ Upstream commit cf5b608fb0e369c473a8303cad6ddb386505e5b8 ]

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

Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver")
Link: https://lore.kernel.org/r/20230523121641.3132102-3-huangjunxian6@hisilicon.com
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/infiniband/hw/hns/hns_roce_hem.c

index aa8a08d..f302749 100644 (file)
@@ -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;
        }