Lines Matching refs:qp_grp

57 static int usnic_ib_fill_create_qp_resp(struct usnic_ib_qp_grp *qp_grp,  in usnic_ib_fill_create_qp_resp()  argument
70 us_ibdev = qp_grp->vf->pf; in usnic_ib_fill_create_qp_resp()
71 pdev = usnic_vnic_get_pdev(qp_grp->vf->vnic); in usnic_ib_fill_create_qp_resp()
74 qp_grp->grp_id); in usnic_ib_fill_create_qp_resp()
78 bar = usnic_vnic_get_bar(qp_grp->vf->vnic, 0); in usnic_ib_fill_create_qp_resp()
81 qp_grp->grp_id, pci_name(pdev)); in usnic_ib_fill_create_qp_resp()
85 resp.vfid = usnic_vnic_get_index(qp_grp->vf->vnic); in usnic_ib_fill_create_qp_resp()
89 chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_RQ); in usnic_ib_fill_create_qp_resp()
93 qp_grp->grp_id, in usnic_ib_fill_create_qp_resp()
103 chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_WQ); in usnic_ib_fill_create_qp_resp()
107 qp_grp->grp_id, in usnic_ib_fill_create_qp_resp()
117 chunk = usnic_ib_qp_grp_get_chunk(qp_grp, USNIC_VNIC_RES_TYPE_CQ); in usnic_ib_fill_create_qp_resp()
121 qp_grp->grp_id, in usnic_ib_fill_create_qp_resp()
131 default_flow = list_first_entry(&qp_grp->flows_lst, in usnic_ib_fill_create_qp_resp()
152 struct usnic_ib_qp_grp *qp_grp; in find_free_vf_and_create_qp_grp() local
205 qp_grp = usnic_ib_qp_grp_create(us_ibdev->ufdev, vf, pd, res_spec, in find_free_vf_and_create_qp_grp()
208 if (IS_ERR_OR_NULL(qp_grp)) { in find_free_vf_and_create_qp_grp()
210 return ERR_PTR(qp_grp ? PTR_ERR(qp_grp) : -ENOMEM); in find_free_vf_and_create_qp_grp()
213 return qp_grp; in find_free_vf_and_create_qp_grp()
216 static void qp_grp_destroy(struct usnic_ib_qp_grp *qp_grp) in qp_grp_destroy() argument
218 struct usnic_ib_vf *vf = qp_grp->vf; in qp_grp_destroy()
220 WARN_ON(qp_grp->state != IB_QPS_RESET); in qp_grp_destroy()
223 usnic_ib_qp_grp_destroy(qp_grp); in qp_grp_destroy()
374 struct usnic_ib_qp_grp *qp_grp; in usnic_ib_query_qp() local
383 qp_grp = to_uqp_grp(qp); in usnic_ib_query_qp()
384 vf = qp_grp->vf; in usnic_ib_query_qp()
387 qp_attr->qp_state = qp_grp->state; in usnic_ib_query_qp()
388 qp_attr->cur_qp_state = qp_grp->state; in usnic_ib_query_qp()
390 switch (qp_grp->ibqp.qp_type) { in usnic_ib_query_qp()
395 usnic_err("Unexpected qp_type %d\n", qp_grp->ibqp.qp_type); in usnic_ib_query_qp()
476 struct usnic_ib_qp_grp *qp_grp; in usnic_ib_create_qp() local
516 qp_grp = find_free_vf_and_create_qp_grp(us_ibdev, to_upd(pd), in usnic_ib_create_qp()
519 if (IS_ERR_OR_NULL(qp_grp)) { in usnic_ib_create_qp()
520 err = qp_grp ? PTR_ERR(qp_grp) : -ENOMEM; in usnic_ib_create_qp()
524 err = usnic_ib_fill_create_qp_resp(qp_grp, udata); in usnic_ib_create_qp()
530 qp_grp->ctx = ucontext; in usnic_ib_create_qp()
531 list_add_tail(&qp_grp->link, &ucontext->qp_grp_list); in usnic_ib_create_qp()
532 usnic_ib_log_vf(qp_grp->vf); in usnic_ib_create_qp()
534 return &qp_grp->ibqp; in usnic_ib_create_qp()
537 qp_grp_destroy(qp_grp); in usnic_ib_create_qp()
545 struct usnic_ib_qp_grp *qp_grp; in usnic_ib_destroy_qp() local
550 qp_grp = to_uqp_grp(qp); in usnic_ib_destroy_qp()
551 vf = qp_grp->vf; in usnic_ib_destroy_qp()
553 if (usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RESET, NULL)) { in usnic_ib_destroy_qp()
555 qp_grp->grp_id); in usnic_ib_destroy_qp()
558 list_del(&qp_grp->link); in usnic_ib_destroy_qp()
559 qp_grp_destroy(qp_grp); in usnic_ib_destroy_qp()
568 struct usnic_ib_qp_grp *qp_grp; in usnic_ib_modify_qp() local
572 qp_grp = to_uqp_grp(ibqp); in usnic_ib_modify_qp()
575 mutex_lock(&qp_grp->vf->pf->usdev_lock); in usnic_ib_modify_qp()
577 status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_INIT, NULL); in usnic_ib_modify_qp()
579 status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RTR, NULL); in usnic_ib_modify_qp()
581 status = usnic_ib_qp_grp_modify(qp_grp, IB_QPS_RTS, NULL); in usnic_ib_modify_qp()
588 mutex_unlock(&qp_grp->vf->pf->usdev_lock); in usnic_ib_modify_qp()
695 struct usnic_ib_qp_grp *qp_grp; in usnic_ib_mmap() local
712 list_for_each_entry(qp_grp, &uctx->qp_grp_list, link) { in usnic_ib_mmap()
713 vf = qp_grp->vf; in usnic_ib_mmap()