mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 09:04:39 +02:00
RDMA/hns: Add clear_hem return value to log
Log return value of clear_hem() to help diagnose. Link: https://lore.kernel.org/r/20230523121641.3132102-4-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>
This commit is contained in:
parent
cf5b608fb0
commit
a519a612a7
|
|
@ -619,6 +619,7 @@ static void clear_mhop_hem(struct hns_roce_dev *hr_dev,
|
|||
u32 hop_num = mhop->hop_num;
|
||||
u32 chunk_ba_num;
|
||||
u32 step_idx;
|
||||
int ret;
|
||||
|
||||
index->inited = HEM_INDEX_BUF;
|
||||
chunk_ba_num = mhop->bt_chunk_size / BA_BYTE_LEN;
|
||||
|
|
@ -642,16 +643,24 @@ static void clear_mhop_hem(struct hns_roce_dev *hr_dev,
|
|||
else
|
||||
step_idx = hop_num;
|
||||
|
||||
if (hr_dev->hw->clear_hem(hr_dev, table, obj, step_idx))
|
||||
ibdev_warn(ibdev, "failed to clear hop%u HEM.\n", hop_num);
|
||||
ret = hr_dev->hw->clear_hem(hr_dev, table, obj, step_idx);
|
||||
if (ret)
|
||||
ibdev_warn(ibdev, "failed to clear hop%u HEM, ret = %d.\n",
|
||||
hop_num, ret);
|
||||
|
||||
if (index->inited & HEM_INDEX_L1)
|
||||
if (hr_dev->hw->clear_hem(hr_dev, table, obj, 1))
|
||||
ibdev_warn(ibdev, "failed to clear HEM step 1.\n");
|
||||
if (index->inited & HEM_INDEX_L1) {
|
||||
ret = hr_dev->hw->clear_hem(hr_dev, table, obj, 1);
|
||||
if (ret)
|
||||
ibdev_warn(ibdev, "failed to clear HEM step 1, ret = %d.\n",
|
||||
ret);
|
||||
}
|
||||
|
||||
if (index->inited & HEM_INDEX_L0)
|
||||
if (hr_dev->hw->clear_hem(hr_dev, table, obj, 0))
|
||||
ibdev_warn(ibdev, "failed to clear HEM step 0.\n");
|
||||
if (index->inited & HEM_INDEX_L0) {
|
||||
ret = hr_dev->hw->clear_hem(hr_dev, table, obj, 0);
|
||||
if (ret)
|
||||
ibdev_warn(ibdev, "failed to clear HEM step 0, ret = %d.\n",
|
||||
ret);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -688,6 +697,7 @@ void hns_roce_table_put(struct hns_roce_dev *hr_dev,
|
|||
{
|
||||
struct device *dev = hr_dev->dev;
|
||||
unsigned long i;
|
||||
int ret;
|
||||
|
||||
if (hns_roce_check_whether_mhop(hr_dev, table->type)) {
|
||||
hns_roce_table_mhop_put(hr_dev, table, obj, 1);
|
||||
|
|
@ -700,8 +710,10 @@ void hns_roce_table_put(struct hns_roce_dev *hr_dev,
|
|||
&table->mutex))
|
||||
return;
|
||||
|
||||
if (hr_dev->hw->clear_hem(hr_dev, table, obj, HEM_HOP_STEP_DIRECT))
|
||||
dev_warn(dev, "failed to clear HEM base address.\n");
|
||||
ret = hr_dev->hw->clear_hem(hr_dev, table, obj, HEM_HOP_STEP_DIRECT);
|
||||
if (ret)
|
||||
dev_warn(dev, "failed to clear HEM base address, ret = %d.\n",
|
||||
ret);
|
||||
|
||||
hns_roce_free_hem(hr_dev, table->hem[i]);
|
||||
table->hem[i] = NULL;
|
||||
|
|
@ -917,6 +929,8 @@ void hns_roce_cleanup_hem_table(struct hns_roce_dev *hr_dev,
|
|||
{
|
||||
struct device *dev = hr_dev->dev;
|
||||
unsigned long i;
|
||||
int obj;
|
||||
int ret;
|
||||
|
||||
if (hns_roce_check_whether_mhop(hr_dev, table->type)) {
|
||||
hns_roce_cleanup_mhop_hem_table(hr_dev, table);
|
||||
|
|
@ -925,9 +939,11 @@ void hns_roce_cleanup_hem_table(struct hns_roce_dev *hr_dev,
|
|||
|
||||
for (i = 0; i < table->num_hem; ++i)
|
||||
if (table->hem[i]) {
|
||||
if (hr_dev->hw->clear_hem(hr_dev, table,
|
||||
i * table->table_chunk_size / table->obj_size, 0))
|
||||
dev_err(dev, "clear HEM base address failed.\n");
|
||||
obj = i * table->table_chunk_size / table->obj_size;
|
||||
ret = hr_dev->hw->clear_hem(hr_dev, table, obj, 0);
|
||||
if (ret)
|
||||
dev_err(dev, "clear HEM base address failed, ret = %d.\n",
|
||||
ret);
|
||||
|
||||
hns_roce_free_hem(hr_dev, table->hem[i]);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user