Lines Matching refs:init_attr

553 		      struct ib_qp_init_attr *init_attr,  in set_qp_rss()  argument
556 rss_ctx->base_qpn_tbl_sz = init_attr->rwq_ind_tbl->ind_tbl[0]->wq_num | in set_qp_rss()
557 (init_attr->rwq_ind_tbl->log_ind_tbl_size << 24); in set_qp_rss()
655 struct ib_qp_init_attr *init_attr, in create_qp_rss() argument
684 (struct ib_qp *)init_attr->rwq_ind_tbl->ind_tbl[0]))->mtt; in create_qp_rss()
692 err = set_qp_rss(dev, qp->rss_ctx, init_attr, ucmd); in create_qp_rss()
711 struct ib_qp_init_attr *init_attr, in _mlx4_ib_create_qp_rss() argument
751 if (init_attr->qp_type != IB_QPT_RAW_PACKET) { in _mlx4_ib_create_qp_rss()
753 init_attr->qp_type); in _mlx4_ib_create_qp_rss()
757 if (init_attr->create_flags) { in _mlx4_ib_create_qp_rss()
762 if (init_attr->send_cq || init_attr->cap.max_send_wr) { in _mlx4_ib_create_qp_rss()
770 err = create_qp_rss(to_mdev(pd->device), init_attr, &ucmd, qp); in _mlx4_ib_create_qp_rss()
861 static int create_rq(struct ib_pd *pd, struct ib_qp_init_attr *init_attr, in create_rq() argument
908 if (init_attr->create_flags & IB_QP_CREATE_SCATTER_FCS) in create_rq()
911 err = set_rq_size(dev, &init_attr->cap, true, true, qp, qp->inl_recv_sz); in create_rq()
960 mlx4_ib_lock_cqs(to_mcq(init_attr->send_cq), in create_rq()
961 to_mcq(init_attr->recv_cq)); in create_rq()
969 mcq = to_mcq(init_attr->send_cq); in create_rq()
971 mcq = to_mcq(init_attr->recv_cq); in create_rq()
973 mlx4_ib_unlock_cqs(to_mcq(init_attr->send_cq), in create_rq()
974 to_mcq(init_attr->recv_cq)); in create_rq()
991 static int create_qp_common(struct ib_pd *pd, struct ib_qp_init_attr *init_attr, in create_qp_common() argument
1000 enum mlx4_ib_qp_type qp_type = (enum mlx4_ib_qp_type) init_attr->qp_type; in create_qp_common()
1008 !(init_attr->create_flags & MLX4_IB_SRIOV_SQP))) { in create_qp_common()
1009 if (init_attr->qp_type == IB_QPT_GSI) in create_qp_common()
1021 init_attr->cap.max_recv_sge++; in create_qp_common()
1022 } else if (init_attr->create_flags & MLX4_IB_SRIOV_TUNNEL_QP) { in create_qp_common()
1024 container_of(init_attr, in create_qp_common()
1025 struct mlx4_ib_qp_tunnel_init_attr, init_attr); in create_qp_common()
1045 if (init_attr->qp_type == IB_QPT_SMI || in create_qp_common()
1046 init_attr->qp_type == IB_QPT_GSI || qp_type == MLX4_IB_QPT_SMI || in create_qp_common()
1063 if (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR) in create_qp_common()
1081 if (init_attr->create_flags & IB_QP_CREATE_SCATTER_FCS) { in create_qp_common()
1092 err = set_rq_size(dev, &init_attr->cap, udata, in create_qp_common()
1093 qp_has_rq(init_attr), qp, qp->inl_recv_sz); in create_qp_common()
1120 if (qp_has_rq(init_attr)) { in create_qp_common()
1127 err = set_rq_size(dev, &init_attr->cap, udata, in create_qp_common()
1128 qp_has_rq(init_attr), qp, 0); in create_qp_common()
1134 if (init_attr->create_flags & IB_QP_CREATE_IPOIB_UD_LSO) in create_qp_common()
1137 if (init_attr->create_flags & IB_QP_CREATE_NETIF_QP) { in create_qp_common()
1147 err = set_kernel_sq_size(dev, &init_attr->cap, qp_type, qp); in create_qp_common()
1151 if (qp_has_rq(init_attr)) { in create_qp_common()
1197 if (init_attr->qp_type == IB_QPT_RAW_PACKET) in create_qp_common()
1199 (init_attr->cap.max_send_wr ? in create_qp_common()
1201 (init_attr->cap.max_recv_wr ? in create_qp_common()
1214 if (init_attr->create_flags & IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK) in create_qp_common()
1221 if (init_attr->qp_type == IB_QPT_XRC_TGT) in create_qp_common()
1234 mlx4_ib_lock_cqs(to_mcq(init_attr->send_cq), in create_qp_common()
1235 to_mcq(init_attr->recv_cq)); in create_qp_common()
1243 mcq = to_mcq(init_attr->send_cq); in create_qp_common()
1245 mcq = to_mcq(init_attr->recv_cq); in create_qp_common()
1247 mlx4_ib_unlock_cqs(to_mcq(init_attr->send_cq), in create_qp_common()
1248 to_mcq(init_attr->recv_cq)); in create_qp_common()
1264 if (qp_has_rq(init_attr)) in create_qp_common()
1280 if (!udata && qp_has_rq(init_attr)) in create_qp_common()
1517 struct ib_qp_init_attr *init_attr, in _mlx4_ib_create_qp() argument
1524 if (init_attr->rwq_ind_tbl) in _mlx4_ib_create_qp()
1525 return _mlx4_ib_create_qp_rss(pd, qp, init_attr, udata); in _mlx4_ib_create_qp()
1531 if (init_attr->create_flags & ~(MLX4_IB_QP_LSO | in _mlx4_ib_create_qp()
1539 if (init_attr->create_flags & IB_QP_CREATE_NETIF_QP) { in _mlx4_ib_create_qp()
1540 if (init_attr->qp_type != IB_QPT_UD) in _mlx4_ib_create_qp()
1544 if (init_attr->create_flags) { in _mlx4_ib_create_qp()
1545 if (udata && init_attr->create_flags & ~(sup_u_create_flags)) in _mlx4_ib_create_qp()
1548 if ((init_attr->create_flags & ~(MLX4_IB_SRIOV_SQP | in _mlx4_ib_create_qp()
1551 init_attr->qp_type != IB_QPT_UD) || in _mlx4_ib_create_qp()
1552 (init_attr->create_flags & MLX4_IB_SRIOV_SQP && in _mlx4_ib_create_qp()
1553 init_attr->qp_type > IB_QPT_GSI) || in _mlx4_ib_create_qp()
1554 (init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI && in _mlx4_ib_create_qp()
1555 init_attr->qp_type != IB_QPT_GSI)) in _mlx4_ib_create_qp()
1559 switch (init_attr->qp_type) { in _mlx4_ib_create_qp()
1561 pd = to_mxrcd(init_attr->xrcd)->pd; in _mlx4_ib_create_qp()
1562 xrcdn = to_mxrcd(init_attr->xrcd)->xrcdn; in _mlx4_ib_create_qp()
1563 init_attr->send_cq = to_mxrcd(init_attr->xrcd)->cq; in _mlx4_ib_create_qp()
1568 init_attr->recv_cq = init_attr->send_cq; in _mlx4_ib_create_qp()
1576 err = create_qp_common(pd, init_attr, udata, 0, qp); in _mlx4_ib_create_qp()
1588 if (init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI) { in _mlx4_ib_create_qp()
1596 sqpn = get_sqp_num(to_mdev(pd->device), init_attr); in _mlx4_ib_create_qp()
1601 err = create_qp_common(pd, init_attr, udata, sqpn, qp); in _mlx4_ib_create_qp()
1605 if (init_attr->create_flags & in _mlx4_ib_create_qp()
1610 qp->port = init_attr->port_num; in _mlx4_ib_create_qp()
1611 qp->ibqp.qp_num = init_attr->qp_type == IB_QPT_SMI ? 0 : in _mlx4_ib_create_qp()
1612 init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI ? sqpn : 1; in _mlx4_ib_create_qp()
1622 int mlx4_ib_create_qp(struct ib_qp *ibqp, struct ib_qp_init_attr *init_attr, in mlx4_ib_create_qp() argument
1632 ret = _mlx4_ib_create_qp(pd, qp, init_attr, udata); in mlx4_ib_create_qp()
1636 if (init_attr->qp_type == IB_QPT_GSI && in mlx4_ib_create_qp()
1637 !(init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI)) { in mlx4_ib_create_qp()
1639 int is_eth = rdma_cap_eth_ah(&dev->ib_dev, init_attr->port_num); in mlx4_ib_create_qp()
1643 init_attr->create_flags |= MLX4_IB_QP_CREATE_ROCE_V2_GSI; in mlx4_ib_create_qp()
1644 sqp->roce_v2_gsi = ib_create_qp(pd, init_attr); in mlx4_ib_create_qp()
1654 init_attr->create_flags &= ~MLX4_IB_QP_CREATE_ROCE_V2_GSI; in mlx4_ib_create_qp()
4120 struct ib_wq_init_attr *init_attr, in mlx4_ib_create_wq() argument
4149 if (init_attr->wq_type != IB_WQT_RQ) { in mlx4_ib_create_wq()
4150 pr_debug("unsupported wq type %d\n", init_attr->wq_type); in mlx4_ib_create_wq()
4154 if (init_attr->create_flags & ~IB_WQ_FLAGS_SCATTER_FCS || in mlx4_ib_create_wq()
4157 init_attr->create_flags); in mlx4_ib_create_wq()
4169 ib_qp_init_attr.qp_context = init_attr->wq_context; in mlx4_ib_create_wq()
4171 ib_qp_init_attr.cap.max_recv_wr = init_attr->max_wr; in mlx4_ib_create_wq()
4172 ib_qp_init_attr.cap.max_recv_sge = init_attr->max_sge; in mlx4_ib_create_wq()
4173 ib_qp_init_attr.recv_cq = init_attr->cq; in mlx4_ib_create_wq()
4176 if (init_attr->create_flags & IB_WQ_FLAGS_SCATTER_FCS) in mlx4_ib_create_wq()
4185 qp->ibwq.event_handler = init_attr->event_handler; in mlx4_ib_create_wq()
4331 struct ib_rwq_ind_table_init_attr *init_attr, in mlx4_ib_create_rwq_ind_table() argument
4335 unsigned int ind_tbl_size = 1 << init_attr->log_ind_tbl_size; in mlx4_ib_create_rwq_ind_table()
4358 base_wqn = init_attr->ind_tbl[0]->wq_num; in mlx4_ib_create_rwq_ind_table()
4367 if (++base_wqn != init_attr->ind_tbl[i]->wq_num) { in mlx4_ib_create_rwq_ind_table()