Lines Matching refs:init_attr
540 struct ib_qp_init_attr *init_attr, in set_qp_rss() argument
543 rss_ctx->base_qpn_tbl_sz = init_attr->rwq_ind_tbl->ind_tbl[0]->wq_num | in set_qp_rss()
544 (init_attr->rwq_ind_tbl->log_ind_tbl_size << 24); in set_qp_rss()
642 struct ib_qp_init_attr *init_attr, in create_qp_rss() argument
673 (struct ib_qp *)init_attr->rwq_ind_tbl->ind_tbl[0]))->mtt; in create_qp_rss()
681 err = set_qp_rss(dev, qp->rss_ctx, init_attr, ucmd); in create_qp_rss()
700 struct ib_qp_init_attr *init_attr, in _mlx4_ib_create_qp_rss() argument
741 if (init_attr->qp_type != IB_QPT_RAW_PACKET) { in _mlx4_ib_create_qp_rss()
743 init_attr->qp_type); in _mlx4_ib_create_qp_rss()
747 if (init_attr->create_flags) { in _mlx4_ib_create_qp_rss()
752 if (init_attr->send_cq || init_attr->cap.max_send_wr) { in _mlx4_ib_create_qp_rss()
764 err = create_qp_rss(to_mdev(pd->device), init_attr, &ucmd, qp); in _mlx4_ib_create_qp_rss()
858 static int create_rq(struct ib_pd *pd, struct ib_qp_init_attr *init_attr, in create_rq() argument
906 if (init_attr->create_flags & IB_QP_CREATE_SCATTER_FCS) in create_rq()
909 err = set_rq_size(dev, &init_attr->cap, true, true, qp, qp->inl_recv_sz); in create_rq()
959 mlx4_ib_lock_cqs(to_mcq(init_attr->send_cq), in create_rq()
960 to_mcq(init_attr->recv_cq)); in create_rq()
968 mcq = to_mcq(init_attr->send_cq); in create_rq()
970 mcq = to_mcq(init_attr->recv_cq); in create_rq()
972 mlx4_ib_unlock_cqs(to_mcq(init_attr->send_cq), in create_rq()
973 to_mcq(init_attr->recv_cq)); in create_rq()
990 static int create_qp_common(struct ib_pd *pd, struct ib_qp_init_attr *init_attr, in create_qp_common() argument
1001 enum mlx4_ib_qp_type qp_type = (enum mlx4_ib_qp_type) init_attr->qp_type; in create_qp_common()
1009 !(init_attr->create_flags & MLX4_IB_SRIOV_SQP))) { in create_qp_common()
1010 if (init_attr->qp_type == IB_QPT_GSI) in create_qp_common()
1022 init_attr->cap.max_recv_sge++; in create_qp_common()
1023 } else if (init_attr->create_flags & MLX4_IB_SRIOV_TUNNEL_QP) { in create_qp_common()
1025 container_of(init_attr, in create_qp_common()
1026 struct mlx4_ib_qp_tunnel_init_attr, init_attr); in create_qp_common()
1073 if (init_attr->sq_sig_type == IB_SIGNAL_ALL_WR) in create_qp_common()
1091 if (init_attr->create_flags & IB_QP_CREATE_SCATTER_FCS) { in create_qp_common()
1102 err = set_rq_size(dev, &init_attr->cap, udata, in create_qp_common()
1103 qp_has_rq(init_attr), qp, qp->inl_recv_sz); in create_qp_common()
1131 if (qp_has_rq(init_attr)) { in create_qp_common()
1138 err = set_rq_size(dev, &init_attr->cap, udata, in create_qp_common()
1139 qp_has_rq(init_attr), qp, 0); in create_qp_common()
1145 if (init_attr->create_flags & IB_QP_CREATE_IPOIB_UD_LSO) in create_qp_common()
1148 if (init_attr->create_flags & IB_QP_CREATE_NETIF_QP) { in create_qp_common()
1156 err = set_kernel_sq_size(dev, &init_attr->cap, qp_type, qp); in create_qp_common()
1160 if (qp_has_rq(init_attr)) { in create_qp_common()
1206 if (init_attr->qp_type == IB_QPT_RAW_PACKET) in create_qp_common()
1208 (init_attr->cap.max_send_wr ? in create_qp_common()
1210 (init_attr->cap.max_recv_wr ? in create_qp_common()
1223 if (init_attr->create_flags & IB_QP_CREATE_BLOCK_MULTICAST_LOOPBACK) in create_qp_common()
1230 if (init_attr->qp_type == IB_QPT_XRC_TGT) in create_qp_common()
1246 mlx4_ib_lock_cqs(to_mcq(init_attr->send_cq), in create_qp_common()
1247 to_mcq(init_attr->recv_cq)); in create_qp_common()
1255 mcq = to_mcq(init_attr->send_cq); in create_qp_common()
1257 mcq = to_mcq(init_attr->recv_cq); in create_qp_common()
1259 mlx4_ib_unlock_cqs(to_mcq(init_attr->send_cq), in create_qp_common()
1260 to_mcq(init_attr->recv_cq)); in create_qp_common()
1276 if (qp_has_rq(init_attr)) in create_qp_common()
1292 if (!udata && qp_has_rq(init_attr)) in create_qp_common()
1533 struct ib_qp_init_attr *init_attr, in _mlx4_ib_create_qp() argument
1541 if (init_attr->rwq_ind_tbl) in _mlx4_ib_create_qp()
1542 return _mlx4_ib_create_qp_rss(pd, init_attr, udata); in _mlx4_ib_create_qp()
1548 if (init_attr->create_flags & ~(MLX4_IB_QP_LSO | in _mlx4_ib_create_qp()
1556 if (init_attr->create_flags & IB_QP_CREATE_NETIF_QP) { in _mlx4_ib_create_qp()
1557 if (init_attr->qp_type != IB_QPT_UD) in _mlx4_ib_create_qp()
1561 if (init_attr->create_flags) { in _mlx4_ib_create_qp()
1562 if (udata && init_attr->create_flags & ~(sup_u_create_flags)) in _mlx4_ib_create_qp()
1565 if ((init_attr->create_flags & ~(MLX4_IB_SRIOV_SQP | in _mlx4_ib_create_qp()
1568 init_attr->qp_type != IB_QPT_UD) || in _mlx4_ib_create_qp()
1569 (init_attr->create_flags & MLX4_IB_SRIOV_SQP && in _mlx4_ib_create_qp()
1570 init_attr->qp_type > IB_QPT_GSI) || in _mlx4_ib_create_qp()
1571 (init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI && in _mlx4_ib_create_qp()
1572 init_attr->qp_type != IB_QPT_GSI)) in _mlx4_ib_create_qp()
1576 switch (init_attr->qp_type) { in _mlx4_ib_create_qp()
1578 pd = to_mxrcd(init_attr->xrcd)->pd; in _mlx4_ib_create_qp()
1579 xrcdn = to_mxrcd(init_attr->xrcd)->xrcdn; in _mlx4_ib_create_qp()
1580 init_attr->send_cq = to_mxrcd(init_attr->xrcd)->cq; in _mlx4_ib_create_qp()
1585 init_attr->recv_cq = init_attr->send_cq; in _mlx4_ib_create_qp()
1598 err = create_qp_common(pd, init_attr, udata, 0, &qp); in _mlx4_ib_create_qp()
1617 if (init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI) { in _mlx4_ib_create_qp()
1625 sqpn = get_sqp_num(to_mdev(pd->device), init_attr); in _mlx4_ib_create_qp()
1628 err = create_qp_common(pd, init_attr, udata, sqpn, &qp); in _mlx4_ib_create_qp()
1632 qp->port = init_attr->port_num; in _mlx4_ib_create_qp()
1633 qp->ibqp.qp_num = init_attr->qp_type == IB_QPT_SMI ? 0 : in _mlx4_ib_create_qp()
1634 init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI ? sqpn : 1; in _mlx4_ib_create_qp()
1646 struct ib_qp_init_attr *init_attr, in mlx4_ib_create_qp() argument
1648 struct ib_device *device = pd ? pd->device : init_attr->xrcd->device; in mlx4_ib_create_qp()
1652 ibqp = _mlx4_ib_create_qp(pd, init_attr, udata); in mlx4_ib_create_qp()
1655 (init_attr->qp_type == IB_QPT_GSI) && in mlx4_ib_create_qp()
1656 !(init_attr->create_flags & MLX4_IB_QP_CREATE_ROCE_V2_GSI)) { in mlx4_ib_create_qp()
1658 int is_eth = rdma_cap_eth_ah(&dev->ib_dev, init_attr->port_num); in mlx4_ib_create_qp()
1662 init_attr->create_flags |= MLX4_IB_QP_CREATE_ROCE_V2_GSI; in mlx4_ib_create_qp()
1663 sqp->roce_v2_gsi = ib_create_qp(pd, init_attr); in mlx4_ib_create_qp()
1673 init_attr->create_flags &= ~MLX4_IB_QP_CREATE_ROCE_V2_GSI; in mlx4_ib_create_qp()
4122 struct ib_wq_init_attr *init_attr, in mlx4_ib_create_wq() argument
4151 if (init_attr->wq_type != IB_WQT_RQ) { in mlx4_ib_create_wq()
4152 pr_debug("unsupported wq type %d\n", init_attr->wq_type); in mlx4_ib_create_wq()
4156 if (init_attr->create_flags & ~IB_WQ_FLAGS_SCATTER_FCS || in mlx4_ib_create_wq()
4159 init_attr->create_flags); in mlx4_ib_create_wq()
4170 ib_qp_init_attr.qp_context = init_attr->wq_context; in mlx4_ib_create_wq()
4172 ib_qp_init_attr.cap.max_recv_wr = init_attr->max_wr; in mlx4_ib_create_wq()
4173 ib_qp_init_attr.cap.max_recv_sge = init_attr->max_sge; in mlx4_ib_create_wq()
4174 ib_qp_init_attr.recv_cq = init_attr->cq; in mlx4_ib_create_wq()
4177 if (init_attr->create_flags & IB_WQ_FLAGS_SCATTER_FCS) in mlx4_ib_create_wq()
4186 qp->ibwq.event_handler = init_attr->event_handler; in mlx4_ib_create_wq()
4337 struct ib_rwq_ind_table_init_attr *init_attr, in mlx4_ib_create_rwq_ind_table() argument
4342 unsigned int ind_tbl_size = 1 << init_attr->log_ind_tbl_size; in mlx4_ib_create_rwq_ind_table()
4365 base_wqn = init_attr->ind_tbl[0]->wq_num; in mlx4_ib_create_rwq_ind_table()
4374 if (++base_wqn != init_attr->ind_tbl[i]->wq_num) { in mlx4_ib_create_rwq_ind_table()