Lines Matching refs:attr
21 if (cap->max_send_wr > rxe->attr.max_qp_wr) { in rxe_qp_chk_cap()
23 cap->max_send_wr, rxe->attr.max_qp_wr); in rxe_qp_chk_cap()
27 if (cap->max_send_sge > rxe->attr.max_send_sge) { in rxe_qp_chk_cap()
29 cap->max_send_sge, rxe->attr.max_send_sge); in rxe_qp_chk_cap()
34 if (cap->max_recv_wr > rxe->attr.max_qp_wr) { in rxe_qp_chk_cap()
36 cap->max_recv_wr, rxe->attr.max_qp_wr); in rxe_qp_chk_cap()
40 if (cap->max_recv_sge > rxe->attr.max_recv_sge) { in rxe_qp_chk_cap()
42 cap->max_recv_sge, rxe->attr.max_recv_sge); in rxe_qp_chk_cap()
120 for (i = 0; i < qp->attr.max_dest_rd_atomic; i++) { in free_rd_atomic_resources()
141 for (i = 0; i < qp->attr.max_dest_rd_atomic; i++) { in cleanup_rd_atomic_resources()
155 qp->attr.path_mtu = 1; in rxe_qp_init_misc()
156 qp->mtu = ib_mtu_enum_to_int(qp->attr.path_mtu); in rxe_qp_init_misc()
165 qp->attr.port_num = init->port_num; in rxe_qp_init_misc()
386 qp->attr.qp_state = IB_QPS_RESET; in rxe_qp_from_init()
440 struct ib_qp_attr *attr, int mask) in rxe_qp_chk_attr() argument
443 if (!rdma_is_port_valid(&rxe->ib_dev, attr->port_num)) { in rxe_qp_chk_attr()
444 rxe_dbg_qp(qp, "invalid port %d\n", attr->port_num); in rxe_qp_chk_attr()
449 if (mask & IB_QP_CAP && rxe_qp_chk_cap(rxe, &attr->cap, !!qp->srq)) in rxe_qp_chk_attr()
455 if (attr->qp_access_flags & ~RXE_ACCESS_SUPPORTED_QP) in rxe_qp_chk_attr()
459 if (mask & IB_QP_AV && rxe_av_chk_attr(qp, &attr->ah_attr)) in rxe_qp_chk_attr()
463 if (rxe_av_chk_attr(qp, &attr->alt_ah_attr)) in rxe_qp_chk_attr()
465 if (!rdma_is_port_valid(&rxe->ib_dev, attr->alt_port_num)) { in rxe_qp_chk_attr()
466 rxe_dbg_qp(qp, "invalid alt port %d\n", attr->alt_port_num); in rxe_qp_chk_attr()
469 if (attr->alt_timeout > 31) { in rxe_qp_chk_attr()
471 attr->alt_timeout); in rxe_qp_chk_attr()
479 enum ib_mtu max_mtu = port->attr.max_mtu; in rxe_qp_chk_attr()
480 enum ib_mtu mtu = attr->path_mtu; in rxe_qp_chk_attr()
491 if (attr->max_rd_atomic > rxe->attr.max_qp_rd_atom) { in rxe_qp_chk_attr()
493 attr->max_rd_atomic, in rxe_qp_chk_attr()
494 rxe->attr.max_qp_rd_atom); in rxe_qp_chk_attr()
500 if (attr->timeout > 31) { in rxe_qp_chk_attr()
502 attr->timeout); in rxe_qp_chk_attr()
562 qp->attr.qp_state = IB_QPS_ERR; in rxe_qp_error()
571 static void rxe_qp_sqd(struct rxe_qp *qp, struct ib_qp_attr *attr, in rxe_qp_sqd() argument
577 qp->attr.sq_draining = 1; in rxe_qp_sqd()
584 static int __qp_chk_state(struct rxe_qp *qp, struct ib_qp_attr *attr, in __qp_chk_state() argument
591 attr->cur_qp_state : qp->attr.qp_state; in __qp_chk_state()
593 attr->qp_state : cur_state; in __qp_chk_state()
599 if (qp->attr.sq_draining && new_state != IB_QPS_ERR) in __qp_chk_state()
617 int rxe_qp_from_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask, in rxe_qp_from_attr() argument
623 qp->attr.cur_qp_state = attr->qp_state; in rxe_qp_from_attr()
629 err = __qp_chk_state(qp, attr, mask); in rxe_qp_from_attr()
631 qp->attr.qp_state = attr->qp_state; in rxe_qp_from_attr()
633 qps2str[attr->qp_state]); in rxe_qp_from_attr()
640 switch (attr->qp_state) { in rxe_qp_from_attr()
645 rxe_qp_sqd(qp, attr, mask); in rxe_qp_from_attr()
656 int max_rd_atomic = attr->max_rd_atomic ? in rxe_qp_from_attr()
657 roundup_pow_of_two(attr->max_rd_atomic) : 0; in rxe_qp_from_attr()
659 qp->attr.max_rd_atomic = max_rd_atomic; in rxe_qp_from_attr()
664 int max_dest_rd_atomic = attr->max_dest_rd_atomic ? in rxe_qp_from_attr()
665 roundup_pow_of_two(attr->max_dest_rd_atomic) : 0; in rxe_qp_from_attr()
667 qp->attr.max_dest_rd_atomic = max_dest_rd_atomic; in rxe_qp_from_attr()
677 qp->attr.en_sqd_async_notify = attr->en_sqd_async_notify; in rxe_qp_from_attr()
680 qp->attr.qp_access_flags = attr->qp_access_flags; in rxe_qp_from_attr()
683 qp->attr.pkey_index = attr->pkey_index; in rxe_qp_from_attr()
686 qp->attr.port_num = attr->port_num; in rxe_qp_from_attr()
689 qp->attr.qkey = attr->qkey; in rxe_qp_from_attr()
692 rxe_init_av(&attr->ah_attr, &qp->pri_av); in rxe_qp_from_attr()
695 rxe_init_av(&attr->alt_ah_attr, &qp->alt_av); in rxe_qp_from_attr()
696 qp->attr.alt_port_num = attr->alt_port_num; in rxe_qp_from_attr()
697 qp->attr.alt_pkey_index = attr->alt_pkey_index; in rxe_qp_from_attr()
698 qp->attr.alt_timeout = attr->alt_timeout; in rxe_qp_from_attr()
702 qp->attr.path_mtu = attr->path_mtu; in rxe_qp_from_attr()
703 qp->mtu = ib_mtu_enum_to_int(attr->path_mtu); in rxe_qp_from_attr()
707 qp->attr.timeout = attr->timeout; in rxe_qp_from_attr()
708 if (attr->timeout == 0) { in rxe_qp_from_attr()
712 int j = nsecs_to_jiffies(4096ULL << attr->timeout); in rxe_qp_from_attr()
719 qp->attr.retry_cnt = attr->retry_cnt; in rxe_qp_from_attr()
720 qp->comp.retry_cnt = attr->retry_cnt; in rxe_qp_from_attr()
721 rxe_dbg_qp(qp, "set retry count = %d\n", attr->retry_cnt); in rxe_qp_from_attr()
725 qp->attr.rnr_retry = attr->rnr_retry; in rxe_qp_from_attr()
726 qp->comp.rnr_retry = attr->rnr_retry; in rxe_qp_from_attr()
727 rxe_dbg_qp(qp, "set rnr retry count = %d\n", attr->rnr_retry); in rxe_qp_from_attr()
731 qp->attr.rq_psn = (attr->rq_psn & BTH_PSN_MASK); in rxe_qp_from_attr()
732 qp->resp.psn = qp->attr.rq_psn; in rxe_qp_from_attr()
737 qp->attr.min_rnr_timer = attr->min_rnr_timer; in rxe_qp_from_attr()
739 attr->min_rnr_timer); in rxe_qp_from_attr()
743 qp->attr.sq_psn = (attr->sq_psn & BTH_PSN_MASK); in rxe_qp_from_attr()
744 qp->req.psn = qp->attr.sq_psn; in rxe_qp_from_attr()
745 qp->comp.psn = qp->attr.sq_psn; in rxe_qp_from_attr()
750 qp->attr.path_mig_state = attr->path_mig_state; in rxe_qp_from_attr()
753 qp->attr.dest_qp_num = attr->dest_qp_num; in rxe_qp_from_attr()
759 int rxe_qp_to_attr(struct rxe_qp *qp, struct ib_qp_attr *attr, int mask) in rxe_qp_to_attr() argument
763 *attr = qp->attr; in rxe_qp_to_attr()
765 attr->rq_psn = qp->resp.psn; in rxe_qp_to_attr()
766 attr->sq_psn = qp->req.psn; in rxe_qp_to_attr()
768 attr->cap.max_send_wr = qp->sq.max_wr; in rxe_qp_to_attr()
769 attr->cap.max_send_sge = qp->sq.max_sge; in rxe_qp_to_attr()
770 attr->cap.max_inline_data = qp->sq.max_inline; in rxe_qp_to_attr()
773 attr->cap.max_recv_wr = qp->rq.max_wr; in rxe_qp_to_attr()
774 attr->cap.max_recv_sge = qp->rq.max_sge; in rxe_qp_to_attr()
777 rxe_av_to_attr(&qp->pri_av, &attr->ah_attr); in rxe_qp_to_attr()
778 rxe_av_to_attr(&qp->alt_av, &attr->alt_ah_attr); in rxe_qp_to_attr()
784 attr->cur_qp_state = qp_state(qp); in rxe_qp_to_attr()
785 if (qp->attr.sq_draining) { in rxe_qp_to_attr()