Lines Matching refs:attr
21 if (cap->max_send_wr > rxe->attr.max_qp_wr) {
23 cap->max_send_wr, rxe->attr.max_qp_wr);
27 if (cap->max_send_sge > rxe->attr.max_send_sge) {
29 cap->max_send_sge, rxe->attr.max_send_sge);
34 if (cap->max_recv_wr > rxe->attr.max_qp_wr) {
36 cap->max_recv_wr, rxe->attr.max_qp_wr);
40 if (cap->max_recv_sge > rxe->attr.max_recv_sge) {
42 cap->max_recv_sge, rxe->attr.max_recv_sge);
115 for (i = 0; i < qp->attr.max_dest_rd_atomic; i++) {
142 for (i = 0; i < qp->attr.max_dest_rd_atomic; i++) {
156 qp->attr.path_mtu = 1;
157 qp->mtu = ib_mtu_enum_to_int(qp->attr.path_mtu);
166 qp->attr.port_num = init->port_num;
172 qp->attr.port_num = init->port_num;
340 qp->attr.qp_state = IB_QPS_RESET;
392 struct ib_qp_attr *attr, int mask)
395 attr->cur_qp_state : qp->attr.qp_state;
397 attr->qp_state : cur_state;
413 if (!rdma_is_port_valid(&rxe->ib_dev, attr->port_num)) {
414 pr_warn("invalid port %d\n", attr->port_num);
419 if (mask & IB_QP_CAP && rxe_qp_chk_cap(rxe, &attr->cap, !!qp->srq))
422 if (mask & IB_QP_AV && rxe_av_chk_attr(rxe, &attr->ah_attr))
426 if (rxe_av_chk_attr(rxe, &attr->alt_ah_attr))
428 if (!rdma_is_port_valid(&rxe->ib_dev, attr->alt_port_num)) {
429 pr_warn("invalid alt port %d\n", attr->alt_port_num);
432 if (attr->alt_timeout > 31) {
434 attr->alt_timeout);
442 enum ib_mtu max_mtu = port->attr.max_mtu;
443 enum ib_mtu mtu = attr->path_mtu;
454 if (attr->max_rd_atomic > rxe->attr.max_qp_rd_atom) {
456 attr->max_rd_atomic,
457 rxe->attr.max_qp_rd_atom);
463 if (attr->timeout > 31) {
465 attr->timeout);
553 qp->attr.qp_state = IB_QPS_ERR;
566 int rxe_qp_from_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask,
572 int max_rd_atomic = attr->max_rd_atomic ?
573 roundup_pow_of_two(attr->max_rd_atomic) : 0;
575 qp->attr.max_rd_atomic = max_rd_atomic;
580 int max_dest_rd_atomic = attr->max_dest_rd_atomic ?
581 roundup_pow_of_two(attr->max_dest_rd_atomic) : 0;
583 qp->attr.max_dest_rd_atomic = max_dest_rd_atomic;
593 qp->attr.cur_qp_state = attr->qp_state;
596 qp->attr.en_sqd_async_notify = attr->en_sqd_async_notify;
599 qp->attr.qp_access_flags = attr->qp_access_flags;
602 qp->attr.pkey_index = attr->pkey_index;
605 qp->attr.port_num = attr->port_num;
608 qp->attr.qkey = attr->qkey;
611 rxe_init_av(&attr->ah_attr, &qp->pri_av);
614 rxe_init_av(&attr->alt_ah_attr, &qp->alt_av);
615 qp->attr.alt_port_num = attr->alt_port_num;
616 qp->attr.alt_pkey_index = attr->alt_pkey_index;
617 qp->attr.alt_timeout = attr->alt_timeout;
621 qp->attr.path_mtu = attr->path_mtu;
622 qp->mtu = ib_mtu_enum_to_int(attr->path_mtu);
626 qp->attr.timeout = attr->timeout;
627 if (attr->timeout == 0) {
630 /* According to the spec, timeout = 4.096 * 2 ^ attr->timeout [us] */
631 int j = nsecs_to_jiffies(4096ULL << attr->timeout);
638 qp->attr.retry_cnt = attr->retry_cnt;
639 qp->comp.retry_cnt = attr->retry_cnt;
641 attr->retry_cnt);
645 qp->attr.rnr_retry = attr->rnr_retry;
646 qp->comp.rnr_retry = attr->rnr_retry;
648 attr->rnr_retry);
652 qp->attr.rq_psn = (attr->rq_psn & BTH_PSN_MASK);
653 qp->resp.psn = qp->attr.rq_psn;
659 qp->attr.min_rnr_timer = attr->min_rnr_timer;
661 attr->min_rnr_timer);
665 qp->attr.sq_psn = (attr->sq_psn & BTH_PSN_MASK);
666 qp->req.psn = qp->attr.sq_psn;
667 qp->comp.psn = qp->attr.sq_psn;
672 qp->attr.path_mig_state = attr->path_mig_state;
675 qp->attr.dest_qp_num = attr->dest_qp_num;
678 qp->attr.qp_state = attr->qp_state;
680 switch (attr->qp_state) {
723 int rxe_qp_to_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask)
725 *attr = qp->attr;
727 attr->rq_psn = qp->resp.psn;
728 attr->sq_psn = qp->req.psn;
730 attr->cap.max_send_wr = qp->sq.max_wr;
731 attr->cap.max_send_sge = qp->sq.max_sge;
732 attr->cap.max_inline_data = qp->sq.max_inline;
735 attr->cap.max_recv_wr = qp->rq.max_wr;
736 attr->cap.max_recv_sge = qp->rq.max_sge;
739 rxe_av_to_attr(&qp->pri_av, &attr->ah_attr);
740 rxe_av_to_attr(&qp->alt_av, &attr->alt_ah_attr);
743 attr->sq_draining = 1;
750 attr->sq_draining = 0;
753 pr_debug("attr->sq_draining = %d\n", attr->sq_draining);