Commit f44c863b authored by Lijun Ou's avatar Lijun Ou Committed by Doug Ledford
Browse files

RDMA/hns: Refactor code for readability



Put the code for checking the send doorbell status into a
separate function and call it from check_qp_db_process_status
to improve indenting and readability.

It fixes the warning from static checker:
drivers/infiniband/hw/hns/hns_roce_hw_v1.c:3562 check_qp_db_process_status()
warn: inconsistent indenting.

Fixes: 5f110ac4 ("IB/hns: Fix for checkpatch.pl comment style)
Signed-off-by: default avatarLijun Ou <oulijun@huawei.com>
Signed-off-by: default avatarWei Hu (Xavier) <xavier.huwei@huawei.com>
Signed-off-by: default avatarShaobo Xu <xushaobo2@huawei.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent be7acd9d
Loading
Loading
Loading
Loading
+51 −44
Original line number Diff line number Diff line
@@ -3532,6 +3532,53 @@ int hns_roce_v1_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *qp_attr,
		hns_roce_v1_q_qp(ibqp, qp_attr, qp_attr_mask, qp_init_attr);
}

static void hns_roce_check_sdb_status(struct hns_roce_dev *hr_dev,
				      u32 *old_send, u32 *old_retry,
				      u32 *tsp_st, u32 *success_flags)
{
	u32 sdb_retry_cnt;
	u32 sdb_send_ptr;
	u32 cur_cnt, old_cnt;
	u32 send_ptr;

	sdb_send_ptr = roce_read(hr_dev, ROCEE_SDB_SEND_PTR_REG);
	sdb_retry_cnt =	roce_read(hr_dev, ROCEE_SDB_RETRY_CNT_REG);
	cur_cnt = roce_get_field(sdb_send_ptr,
				 ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
				 ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S) +
		  roce_get_field(sdb_retry_cnt,
				 ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_M,
				 ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_S);
	if (!roce_get_bit(*tsp_st, ROCEE_CNT_CLR_CE_CNT_CLR_CE_S)) {
		old_cnt = roce_get_field(*old_send,
					 ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					 ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S) +
			  roce_get_field(*old_retry,
					 ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_M,
					 ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_S);
		if (cur_cnt - old_cnt > SDB_ST_CMP_VAL)
			*success_flags = 1;
	} else {
		old_cnt = roce_get_field(*old_send,
					 ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					 ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S);
		if (cur_cnt - old_cnt > SDB_ST_CMP_VAL) {
			*success_flags = 1;
		} else {
			send_ptr = roce_get_field(*old_send,
					    ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					    ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S) +
				   roce_get_field(sdb_retry_cnt,
					    ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_M,
					    ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_S);
			roce_set_field(*old_send,
				       ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
				       ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S,
				       send_ptr);
		}
	}
}

static int check_qp_db_process_status(struct hns_roce_dev *hr_dev,
				      struct hns_roce_qp *hr_qp,
				      u32 sdb_issue_ptr,
@@ -3539,12 +3586,10 @@ static int check_qp_db_process_status(struct hns_roce_dev *hr_dev,
				      u32 *wait_stage)
{
	struct device *dev = &hr_dev->pdev->dev;
	u32 sdb_retry_cnt, old_retry;
	u32 sdb_send_ptr, old_send;
	u32 success_flags = 0;
	u32 cur_cnt, old_cnt;
	unsigned long end;
	u32 send_ptr;
	u32 old_retry;
	u32 inv_cnt;
	u32 tsp_st;

@@ -3602,47 +3647,9 @@ static int check_qp_db_process_status(struct hns_roce_dev *hr_dev,

				msleep(HNS_ROCE_V1_CHECK_DB_SLEEP_MSECS);

				sdb_send_ptr = roce_read(hr_dev,
							ROCEE_SDB_SEND_PTR_REG);
				sdb_retry_cnt =	roce_read(hr_dev,
						       ROCEE_SDB_RETRY_CNT_REG);
				cur_cnt = roce_get_field(sdb_send_ptr,
					ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S) +
					roce_get_field(sdb_retry_cnt,
					ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_M,
					ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_S);
				if (!roce_get_bit(tsp_st,
					ROCEE_CNT_CLR_CE_CNT_CLR_CE_S)) {
					old_cnt = roce_get_field(old_send,
					ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S) +
					roce_get_field(old_retry,
					ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_M,
					ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_S);
					if (cur_cnt - old_cnt > SDB_ST_CMP_VAL)
						success_flags = 1;
				} else {
					old_cnt = roce_get_field(old_send,
					ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S);
					if (cur_cnt - old_cnt >
					    SDB_ST_CMP_VAL) {
						success_flags = 1;
					} else {
						send_ptr =
							roce_get_field(old_send,
					    ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					    ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S) +
					    roce_get_field(sdb_retry_cnt,
					    ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_M,
					    ROCEE_SDB_RETRY_CNT_SDB_RETRY_CT_S);
					    roce_set_field(old_send,
					    ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_M,
					    ROCEE_SDB_SEND_PTR_SDB_SEND_PTR_S,
						send_ptr);
					}
				}
				hns_roce_check_sdb_status(hr_dev, &old_send,
							  &old_retry, &tsp_st,
							  &success_flags);
			} while (!success_flags);
		}