]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
RDMA/hns: Remove unnecessary access right set during INIT2INIT
authorYixian Liu <liuyixian@huawei.com>
Fri, 11 Dec 2020 01:37:32 +0000 (09:37 +0800)
committerJason Gunthorpe <jgg@nvidia.com>
Fri, 11 Dec 2020 19:21:34 +0000 (15:21 -0400)
As the qp access right is checked and setted in common function
hns_roce_v2_set_opt_fields(), there is no need to set again for a special
case INIT2INIT.

Fixes: 926a01dc000d ("RDMA/hns: Add QP operations support for hip08 SoC")
Fixes: 7db82697b8bf ("RDMA/hns: Add support for extended atomic in userspace")
Link: https://lore.kernel.org/r/1607650657-35992-7-git-send-email-liweihang@huawei.com
Signed-off-by: Yixian Liu <liuyixian@huawei.com>
Signed-off-by: Weihang Li <liweihang@huawei.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/hns/hns_roce_hw_v2.c

index b2b80528c3bbad4c41df23fbfe352a26820f6387..6d80cda701dda20b66d7b36c8f45c8529cd2e5dd 100644 (file)
@@ -3975,7 +3975,6 @@ static void modify_qp_reset_to_init(struct ib_qp *ibqp,
 
        roce_set_bit(context->byte_172_sq_psn, V2_QPC_BYTE_172_FRE_S, 1);
 
-       hr_qp->access_flags = attr->qp_access_flags;
        roce_set_field(context->byte_252_err_txcqn, V2_QPC_BYTE_252_TX_CQN_M,
                       V2_QPC_BYTE_252_TX_CQN_S, to_hr_cq(ibqp->send_cq)->cqn);
 
@@ -4004,51 +4003,6 @@ static void modify_qp_init_to_init(struct ib_qp *ibqp,
        roce_set_field(qpc_mask->byte_4_sqpn_tst, V2_QPC_BYTE_4_TST_M,
                       V2_QPC_BYTE_4_TST_S, 0);
 
-       if (attr_mask & IB_QP_ACCESS_FLAGS) {
-               roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S,
-                            !!(attr->qp_access_flags & IB_ACCESS_REMOTE_READ));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S,
-                            0);
-
-               roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RWE_S,
-                            !!(attr->qp_access_flags &
-                            IB_ACCESS_REMOTE_WRITE));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_RWE_S,
-                            0);
-
-               roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
-                            !!(attr->qp_access_flags &
-                            IB_ACCESS_REMOTE_ATOMIC));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
-                            0);
-               roce_set_bit(context->byte_76_srqn_op_en,
-                            V2_QPC_BYTE_76_EXT_ATE_S,
-                            !!(attr->qp_access_flags &
-                               IB_ACCESS_REMOTE_ATOMIC));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en,
-                            V2_QPC_BYTE_76_EXT_ATE_S, 0);
-       } else {
-               roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S,
-                            !!(hr_qp->access_flags & IB_ACCESS_REMOTE_READ));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_RRE_S,
-                            0);
-
-               roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_RWE_S,
-                            !!(hr_qp->access_flags & IB_ACCESS_REMOTE_WRITE));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_RWE_S,
-                            0);
-
-               roce_set_bit(context->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
-                            !!(hr_qp->access_flags & IB_ACCESS_REMOTE_ATOMIC));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en, V2_QPC_BYTE_76_ATE_S,
-                            0);
-               roce_set_bit(context->byte_76_srqn_op_en,
-                            V2_QPC_BYTE_76_EXT_ATE_S,
-                            !!(hr_qp->access_flags & IB_ACCESS_REMOTE_ATOMIC));
-               roce_set_bit(qpc_mask->byte_76_srqn_op_en,
-                            V2_QPC_BYTE_76_EXT_ATE_S, 0);
-       }
-
        roce_set_field(context->byte_16_buf_ba_pg_sz, V2_QPC_BYTE_16_PD_M,
                       V2_QPC_BYTE_16_PD_S, to_hr_pd(ibqp->pd)->pdn);
        roce_set_field(qpc_mask->byte_16_buf_ba_pg_sz, V2_QPC_BYTE_16_PD_M,