lkml.org 
[lkml]   [2017]   [Sep]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH for-next 2/9] RDMA/hns: Factor out the code for checking sdb status into a new function
    Date
    From: Lijun Ou <oulijun@huawei.com>

    It mainly places the lines for checking send doorbell status
    into a special functions. As a result, we can directly call it in
    check_qp_db_process_status function and keep consistent indenting
    style.

    It fixes: 5f110ac4bed8 ("IB/hns: Fix for checkpatch.pl comment style)
    The warning from static checker:
    drivers/infiniband/hw/hns/hns_roce_hw_v1.c:3562 check_qp_db_process_status()
    warn: inconsistent indenting

    Signed-off-by: Lijun Ou <oulijun@huawei.com>
    Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
    Signed-off-by: Shaobo Xu <xushaobo2@huawei.com>
    ---
    drivers/infiniband/hw/hns/hns_roce_hw_v1.c | 95 ++++++++++++++++--------------
    1 file changed, 51 insertions(+), 44 deletions(-)

    diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
    index 6e9acfd..95f5c88 100644
    --- a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
    +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
    @@ -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);
    }

    --
    1.9.1
    \
     
     \ /
      Last update: 2017-09-28 06:31    [W:8.589 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site