Message ID | 20160913194930.273964-8-salil.mehta@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Hi Lijun, [auto build test ERROR on next-20160913] [cannot apply to rdma/master robh/for-next v4.8-rc6 v4.8-rc5 v4.8-rc4 v4.8-rc6] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Salil-Mehta/IB-hns-Add-CM-Connection-Manager-Support-to-HNS-RoCe-Driver/20160914-035830 config: arm64-allmodconfig (attached as .config) compiler: aarch64-linux-gnu-gcc (Debian 5.4.0-6) 5.4.0 20160609 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=arm64 All error/warnings (new ones prefixed by >>): drivers/infiniband/hw/hns/hns_roce_hw_v1.c: In function 'hns_roce_v1_m_qp': >> drivers/infiniband/hw/hns/hns_roce_hw_v1.c:2410:10: error: 'DB_REG_OFFSET' undeclared (first use in this function) DB_REG_OFFSET * hr_dev->priv_uar.index; ^ drivers/infiniband/hw/hns/hns_roce_hw_v1.c:2410:10: note: each undeclared identifier is reported only once for each function it appears in >> drivers/infiniband/hw/hns/hns_roce_hw_v1.c:1842:6: warning: unused variable 'reg_val' [-Wunused-variable] u32 reg_val = 0; ^ >> drivers/infiniband/hw/hns/hns_roce_hw_v1.c:1837:24: warning: unused variable 'rq_db' [-Wunused-variable] struct hns_roce_rq_db rq_db; ^ vim +/DB_REG_OFFSET +2410 drivers/infiniband/hw/hns/hns_roce_hw_v1.c 2404 RQ_DOORBELL_U32_8_CMD_S, 1); 2405 roce_set_bit(doorbell[1], RQ_DOORBELL_U32_8_HW_SYNC_S, 1); 2406 2407 if (ibqp->uobject) { 2408 hr_qp->rq.db_reg_l = hr_dev->reg_base + 2409 ROCEE_DB_OTHERS_L_0_REG + > 2410 DB_REG_OFFSET * hr_dev->priv_uar.index; 2411 } 2412 2413 hns_roce_write64_k(doorbell, hr_qp->rq.db_reg_l); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c index 581e542..206957b 100644 --- a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c @@ -2395,35 +2395,22 @@ static int hns_roce_v1_m_qp(struct ib_qp *ibqp, const struct ib_qp_attr *attr, if (cur_state == IB_QPS_INIT && new_state == IB_QPS_INIT) { /* Memory barrier */ wmb(); - if (hr_qp->ibqp.qp_type == IB_QPT_GSI) { - /* SW update GSI rq header */ - reg_val = roce_read(hr_dev, ROCEE_QP1C_CFG3_0_REG + - QP1C_CFGN_OFFSET * hr_qp->phy_port); - roce_set_field(reg_val, - ROCEE_QP1C_CFG3_0_ROCEE_QP1C_RQ_HEAD_M, - ROCEE_QP1C_CFG3_0_ROCEE_QP1C_RQ_HEAD_S, - hr_qp->rq.head); - roce_write(hr_dev, ROCEE_QP1C_CFG3_0_REG + - QP1C_CFGN_OFFSET * hr_qp->phy_port, reg_val); - } else { - rq_db.u32_4 = 0; - rq_db.u32_8 = 0; - roce_set_field(rq_db.u32_4, RQ_DOORBELL_U32_4_RQ_HEAD_M, - RQ_DOORBELL_U32_4_RQ_HEAD_S, - hr_qp->rq.head); - roce_set_field(rq_db.u32_8, RQ_DOORBELL_U32_8_QPN_M, - RQ_DOORBELL_U32_8_QPN_S, hr_qp->qpn); - roce_set_field(rq_db.u32_8, RQ_DOORBELL_U32_8_CMD_M, - RQ_DOORBELL_U32_8_CMD_S, 1); - roce_set_bit(rq_db.u32_8, RQ_DOORBELL_U32_8_HW_SYNC_S, - 1); - - doorbell[0] = rq_db.u32_4; - doorbell[1] = rq_db.u32_8; - - hns_roce_write64_k(doorbell, hr_qp->rq.db_reg_l); + roce_set_field(doorbell[0], RQ_DOORBELL_U32_4_RQ_HEAD_M, + RQ_DOORBELL_U32_4_RQ_HEAD_S, hr_qp->rq.head); + roce_set_field(doorbell[1], RQ_DOORBELL_U32_8_QPN_M, + RQ_DOORBELL_U32_8_QPN_S, hr_qp->qpn); + roce_set_field(doorbell[1], RQ_DOORBELL_U32_8_CMD_M, + RQ_DOORBELL_U32_8_CMD_S, 1); + roce_set_bit(doorbell[1], RQ_DOORBELL_U32_8_HW_SYNC_S, 1); + + if (ibqp->uobject) { + hr_qp->rq.db_reg_l = hr_dev->reg_base + + ROCEE_DB_OTHERS_L_0_REG + + DB_REG_OFFSET * hr_dev->priv_uar.index; } + + hns_roce_write64_k(doorbell, hr_qp->rq.db_reg_l); } hr_qp->state = new_state;