Lines Matching refs:srq

102 	struct qedr_srq *srq = get_qedr_srq(ibsrq);  in qedr_query_srq()  local
104 srq_attr->srq_limit = srq->srq_limit; in qedr_query_srq()
1257 struct qedr_srq *srq, struct ib_udata *udata) in qedr_copy_srq_uresp() argument
1262 uresp.srq_id = srq->srq_id; in qedr_copy_srq_uresp()
1373 if (attrs->srq) in qedr_set_common_qp_params()
1374 qp->srq = get_qedr_srq(attrs->srq); in qedr_set_common_qp_params()
1388 qp->state, qp->signaled, (attrs->srq) ? 1 : 0); in qedr_set_common_qp_params()
1448 static void qedr_free_srq_user_params(struct qedr_srq *srq) in qedr_free_srq_user_params() argument
1450 qedr_free_pbl(srq->dev, &srq->usrq.pbl_info, srq->usrq.pbl_tbl); in qedr_free_srq_user_params()
1451 ib_umem_release(srq->usrq.umem); in qedr_free_srq_user_params()
1452 ib_umem_release(srq->prod_umem); in qedr_free_srq_user_params()
1455 static void qedr_free_srq_kernel_params(struct qedr_srq *srq) in qedr_free_srq_kernel_params() argument
1457 struct qedr_srq_hwq_info *hw_srq = &srq->hw_srq; in qedr_free_srq_kernel_params()
1458 struct qedr_dev *dev = srq->dev; in qedr_free_srq_kernel_params()
1468 struct qedr_srq *srq, in qedr_init_srq_user_params() argument
1475 rc = qedr_init_user_queue(udata, srq->dev, &srq->usrq, ureq->srq_addr, in qedr_init_srq_user_params()
1480 srq->prod_umem = ib_umem_get(srq->ibsrq.device, ureq->prod_pair_addr, in qedr_init_srq_user_params()
1482 if (IS_ERR(srq->prod_umem)) { in qedr_init_srq_user_params()
1483 qedr_free_pbl(srq->dev, &srq->usrq.pbl_info, srq->usrq.pbl_tbl); in qedr_init_srq_user_params()
1484 ib_umem_release(srq->usrq.umem); in qedr_init_srq_user_params()
1485 DP_ERR(srq->dev, in qedr_init_srq_user_params()
1487 PTR_ERR(srq->prod_umem)); in qedr_init_srq_user_params()
1488 return PTR_ERR(srq->prod_umem); in qedr_init_srq_user_params()
1491 sg = srq->prod_umem->sgt_append.sgt.sgl; in qedr_init_srq_user_params()
1492 srq->hw_srq.phy_prod_pair_addr = sg_dma_address(sg); in qedr_init_srq_user_params()
1497 static int qedr_alloc_srq_kernel_params(struct qedr_srq *srq, in qedr_alloc_srq_kernel_params() argument
1501 struct qedr_srq_hwq_info *hw_srq = &srq->hw_srq; in qedr_alloc_srq_kernel_params()
1554 struct qedr_srq *srq = get_qedr_srq(ibsrq); in qedr_create_srq() local
1569 srq->dev = dev; in qedr_create_srq()
1570 srq->is_xrc = (init_attr->srq_type == IB_SRQT_XRC); in qedr_create_srq()
1571 hw_srq = &srq->hw_srq; in qedr_create_srq()
1572 spin_lock_init(&srq->lock); in qedr_create_srq()
1585 rc = qedr_init_srq_user_params(udata, srq, &ureq, 0); in qedr_create_srq()
1589 page_cnt = srq->usrq.pbl_info.num_pbes; in qedr_create_srq()
1590 pbl_base_addr = srq->usrq.pbl_tbl->pa; in qedr_create_srq()
1596 rc = qedr_alloc_srq_kernel_params(srq, dev, init_attr); in qedr_create_srq()
1612 if (srq->is_xrc) { in qedr_create_srq()
1625 srq->srq_id = out_params.srq_id; in qedr_create_srq()
1628 rc = qedr_copy_srq_uresp(dev, srq, udata); in qedr_create_srq()
1633 rc = xa_insert_irq(&dev->srqs, srq->srq_id, srq, GFP_KERNEL); in qedr_create_srq()
1638 "create srq: created srq with srq_id=0x%0x\n", srq->srq_id); in qedr_create_srq()
1642 destroy_in_params.srq_id = srq->srq_id; in qedr_create_srq()
1647 qedr_free_srq_user_params(srq); in qedr_create_srq()
1649 qedr_free_srq_kernel_params(srq); in qedr_create_srq()
1658 struct qedr_srq *srq = get_qedr_srq(ibsrq); in qedr_destroy_srq() local
1660 xa_erase_irq(&dev->srqs, srq->srq_id); in qedr_destroy_srq()
1661 in_params.srq_id = srq->srq_id; in qedr_destroy_srq()
1662 in_params.is_xrc = srq->is_xrc; in qedr_destroy_srq()
1666 qedr_free_srq_user_params(srq); in qedr_destroy_srq()
1668 qedr_free_srq_kernel_params(srq); in qedr_destroy_srq()
1672 srq->srq_id); in qedr_destroy_srq()
1681 struct qedr_srq *srq = get_qedr_srq(ibsrq); in qedr_modify_srq() local
1687 attr_mask, srq); in qedr_modify_srq()
1692 if (attr->srq_limit >= srq->hw_srq.max_wr) { in qedr_modify_srq()
1695 attr->srq_limit, srq->hw_srq.max_wr); in qedr_modify_srq()
1699 in_params.srq_id = srq->srq_id; in qedr_modify_srq()
1706 srq->srq_limit = attr->srq_limit; in qedr_modify_srq()
1709 "modify srq: modified srq with srq_id=0x%0x\n", srq->srq_id); in qedr_modify_srq()
1758 params->srq_id = qp->srq->srq_id; in qedr_init_common_qp_in_params()
1792 if (!qp->srq) { in qedr_iwarp_populate_user_qp()
2153 if (!qp->srq) { in qedr_cleanup_kernel()
3835 struct qedr_srq *srq = get_qedr_srq(ibsrq); in qedr_post_srq_recv() local
3837 struct qedr_dev *dev = srq->dev; in qedr_post_srq_recv()
3843 spin_lock_irqsave(&srq->lock, flags); in qedr_post_srq_recv()
3845 hw_srq = &srq->hw_srq; in qedr_post_srq_recv()
3846 pbl = &srq->hw_srq.pbl; in qedr_post_srq_recv()
3852 wr->num_sge > srq->hw_srq.max_sges) { in qedr_post_srq_recv()
3856 wr->num_sge, srq->hw_srq.max_sges); in qedr_post_srq_recv()
3867 srq->hw_srq.wr_prod_cnt++; in qedr_post_srq_recv()
3898 srq->hw_srq.virt_prod_pair_addr->sge_prod = cpu_to_le32(hw_srq->sge_prod); in qedr_post_srq_recv()
3901 srq->hw_srq.virt_prod_pair_addr->wqe_prod = cpu_to_le32(hw_srq->wqe_prod); in qedr_post_srq_recv()
3908 spin_unlock_irqrestore(&srq->lock, flags); in qedr_post_srq_recv()
4298 struct qedr_srq *srq = qp->srq; in process_resp_one_srq() local
4315 atomic_inc(&srq->hw_srq.wr_cons_cnt); in process_resp_one_srq()