Lines Matching defs:ibqp

199 	if (qp->ibqp.qp_type == IB_QPT_UD) {
203 av->port_pd = cpu_to_be32((qp->port << 24) | to_mpd(qp->ibqp.pd)->pdn);
241 struct ib_qp *ibqp = &mqp->ibqp;
248 if (ibqp->event_handler) {
249 event.device = ibqp->device;
281 if (unlikely(ibqp->qp_type == IB_QPT_XRC &&
284 event.element.xrc_qp_num = ibqp->qp_num;
287 ibqp->event_handler(&event, ctx_entry->context);
291 event.element.qp = ibqp;
292 ibqp->event_handler(&event, ibqp->qp_context);
776 send_cq = to_mcq(qp->ibqp.send_cq);
777 recv_cq = to_mcq(qp->ibqp.recv_cq);
783 qp->ibqp.srq ? to_msrq(qp->ibqp.srq): NULL);
800 if (!qp->ibqp.srq && qp->ibqp.qp_type != IB_QPT_XRC)
801 mlx4_ib_db_unmap_user(to_mucontext(qp->ibqp.uobject->context),
810 if (!qp->ibqp.srq && qp->ibqp.qp_type != IB_QPT_XRC)
862 qp->ibqp.qp_num = qp->mqp.qpn;
896 qp->ibqp.qp_num = init_attr->qp_type == IB_QPT_SMI ? 0 : 1;
906 return &qp->ibqp;
1068 static int __mlx4_ib_modify_qp(struct ib_qp *ibqp,
1072 struct mlx4_ib_dev *dev = to_mdev(ibqp->device);
1073 struct mlx4_ib_qp *qp = to_mqp(ibqp);
1084 (to_mlx4_st(ibqp->qp_type) << 16));
1102 if (ibqp->qp_type == IB_QPT_RAW_ETH)
1104 else if (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI ||
1105 ibqp->qp_type == IB_QPT_RAW_ETY)
1107 else if (ibqp->qp_type == IB_QPT_UD) {
1133 if (ibqp->qp_type == IB_QPT_XRC)
1137 if (qp->ibqp.uobject)
1138 context->usr_page = cpu_to_be32(to_mucontext(ibqp->uobject->context)->uar.index);
1168 ibqp->qp_num);
1185 ibqp->qp_num, attr->alt_port_num);
1192 ibqp->qp_num, attr->alt_pkey_index);
1199 ibqp->qp_num);
1208 context->pd = cpu_to_be32(to_mpd(ibqp->pd)->pdn);
1212 if (!qp->ibqp.uobject)
1235 context->cqn_send = cpu_to_be32(to_mcq(ibqp->send_cq)->mcq.cqn);
1249 if (ibqp->srq)
1259 context->cqn_recv = cpu_to_be32(to_mcq(ibqp->recv_cq)->mcq.cqn);
1266 if (ibqp->srq)
1267 context->srqn = cpu_to_be32(1 << 24 | to_msrq(ibqp->srq)->msrq.srqn);
1269 if (!ibqp->srq && ibqp->qp_type != IB_QPT_XRC &&
1275 (ibqp->qp_type == IB_QPT_GSI || ibqp->qp_type == IB_QPT_SMI ||
1276 ibqp->qp_type == IB_QPT_UD || ibqp->qp_type == IB_QPT_RAW_ETY ||
1277 ibqp->qp_type == IB_QPT_RAW_ETH)) {
1291 if (!ibqp->uobject && cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT)
1300 if (!ibqp->uobject && cur_state == IB_QPS_RESET && new_state == IB_QPS_INIT) {
1355 if (new_state == IB_QPS_RESET && !ibqp->uobject) {
1356 mlx4_ib_cq_clean(to_mcq(ibqp->recv_cq), qp->mqp.qpn,
1357 ibqp->srq ? to_msrq(ibqp->srq): NULL);
1358 if (ibqp->send_cq != ibqp->recv_cq)
1359 mlx4_ib_cq_clean(to_mcq(ibqp->send_cq), qp->mqp.qpn, NULL);
1366 if (!ibqp->srq && ibqp->qp_type != IB_QPT_XRC)
1375 int mlx4_ib_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr,
1378 struct mlx4_ib_dev *dev = to_mdev(ibqp->device);
1379 struct mlx4_ib_qp *qp = to_mqp(ibqp);
1388 if (!ib_modify_qp_is_ok(cur_state, new_state, ibqp->qp_type, attr_mask)) {
1391 ibqp->qp_num, cur_state, new_state,
1392 ibqp->qp_type, attr_mask);
1396 if ((attr_mask & IB_QP_PORT) && (ibqp->qp_type != IB_QPT_RAW_ETH) &&
1400 ibqp->qp_num, attr->port_num, cur_state,
1401 new_state, ibqp->qp_type);
1405 if ((attr_mask & IB_QP_PORT) && (ibqp->qp_type == IB_QPT_RAW_ETH) &&
1410 ibqp->qp_num, attr->port_num, cur_state,
1411 new_state, ibqp->qp_type);
1420 ibqp->qp_num, attr->pkey_index, cur_state,
1421 new_state, ibqp->qp_type);
1430 ibqp->qp_num, attr->max_rd_atomic, cur_state,
1431 new_state, ibqp->qp_type);
1439 ibqp->qp_num, attr->max_dest_rd_atomic, cur_state,
1440 new_state, ibqp->qp_type);
1449 err = __mlx4_ib_modify_qp(ibqp, attr, attr_mask, cur_state, new_state);
1502 struct ib_device *ib_dev = &to_mdev(sqp->qp.ibqp.device)->ib_dev;
1523 is_eth = rdma_port_get_link_layer(sqp->qp.ibqp.device, sqp->qp.port) == IB_LINK_LAYER_ETHERNET;
1557 mlx->flags |= cpu_to_be32((!sqp->qp.ibqp.qp_num ? MLX4_WQE_MLX_VL15 : 0) |
1583 smac = to_mdev(sqp->qp.ibqp.device)->iboe.netdevs[sqp->qp.port - 1]->dev_addr; /* fixme: cache this value */
1585 smac = IF_LLADDR(to_mdev(sqp->qp.ibqp.device)->iboe.netdevs[sqp->qp.port - 1]); /* fixme: cache this value */
1600 sqp->ud_header.lrh.virtual_lane = !sqp->qp.ibqp.qp_num ? 15 : 0;
1605 if (!sqp->qp.ibqp.qp_num)
1614 sqp->ud_header.deth.source_qpn = cpu_to_be32(sqp->qp.ibqp.qp_num);
1931 int mlx4_ib_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr,
1934 struct mlx4_ib_qp *qp = to_mqp(ibqp);
1961 if (mlx4_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq)) {
1962 mlx4_ib_dbg("QP 0x%x: WQE overflow", ibqp->qp_num);
1970 ibqp->qp_num, wr->num_sge);
1995 switch (ibqp->qp_type) {
2116 if (unlikely(qp->ibqp.qp_type == IB_QPT_SMI ||
2117 qp->ibqp.qp_type == IB_QPT_GSI)) {
2233 int mlx4_ib_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr,
2236 struct mlx4_ib_qp *qp = to_mqp(ibqp);
2249 if (mlx4_wq_overflow(&qp->rq, nreq, qp->ibqp.recv_cq)) {
2250 mlx4_ib_dbg("QP 0x%x: WQE overflow", ibqp->qp_num);
2258 ibqp->qp_num, wr->num_sge);
2374 int mlx4_ib_query_qp(struct ib_qp *ibqp, struct ib_qp_attr *qp_attr, int qp_attr_mask,
2377 struct mlx4_ib_dev *dev = to_mdev(ibqp->device);
2378 struct mlx4_ib_qp *qp = to_mqp(ibqp);
2410 if (qp->ibqp.qp_type == IB_QPT_RC || qp->ibqp.qp_type == IB_QPT_UC ||
2411 qp->ibqp.qp_type == IB_QPT_XRC) {
2443 if (!ibqp->uobject) {
2477 struct ib_qp *ibqp;
2509 ibqp = &qp->ibqp;
2511 ibqp->qp_num = qp->mqp.qpn;
2512 ibqp->device = init_attr->xrc_domain->device;
2513 ibqp->pd = xrcd->pd;
2514 ibqp->send_cq = ibqp->recv_cq = xrcd->cq;
2515 ibqp->event_handler = init_attr->event_handler;
2516 ibqp->qp_context = init_attr->qp_context;
2517 ibqp->qp_type = init_attr->qp_type;
2518 ibqp->xrcd = init_attr->xrc_domain;
2553 if (!(mibqp->flags & MLX4_IB_XRC_RCV) || !mibqp->ibqp.xrcd ||
2554 xrcd->xrcdn != to_mxrcd(mibqp->ibqp.xrcd)->xrcdn)
2557 err = mlx4_ib_modify_qp(&mibqp->ibqp, attr, attr_mask, NULL);
2590 if (!(qp->flags & MLX4_IB_XRC_RCV) || !(qp->ibqp.xrcd) ||
2591 xrcd->xrcdn != to_mxrcd(qp->ibqp.xrcd)->xrcdn)
2616 if (qp->ibqp.qp_type == IB_QPT_RC || qp->ibqp.qp_type == IB_QPT_UC ||
2617 qp->ibqp.qp_type == IB_QPT_XRC) {
2684 if (!(mibqp->flags & MLX4_IB_XRC_RCV) || !(mibqp->ibqp.xrcd) ||
2685 mxrcd->xrcdn != to_mxrcd(mibqp->ibqp.xrcd)->xrcdn)
2761 mlx4_ib_destroy_qp(&mibqp->ibqp);