Lines Matching refs:qhp
861 struct iwch_qp *qhp; in iwch_destroy_qp() local
865 qhp = to_iwch_qp(ib_qp); in iwch_destroy_qp()
866 rhp = qhp->rhp; in iwch_destroy_qp()
869 iwch_modify_qp(rhp, qhp, IWCH_QP_ATTR_NEXT_STATE, &attrs, 0); in iwch_destroy_qp()
870 wait_event(qhp->wait, !qhp->ep); in iwch_destroy_qp()
872 remove_handle(rhp, &rhp->qpidr, qhp->wq.qpid); in iwch_destroy_qp()
874 atomic_dec(&qhp->refcnt); in iwch_destroy_qp()
875 wait_event(qhp->wait, !atomic_read(&qhp->refcnt)); in iwch_destroy_qp()
879 cxio_destroy_qp(&rhp->rdev, &qhp->wq, in iwch_destroy_qp()
883 ib_qp, qhp->wq.qpid, qhp); in iwch_destroy_qp()
884 kfree(qhp); in iwch_destroy_qp()
893 struct iwch_qp *qhp; in iwch_create_qp() local
944 qhp = kzalloc(sizeof(*qhp), GFP_KERNEL); in iwch_create_qp()
945 if (!qhp) in iwch_create_qp()
947 qhp->wq.size_log2 = ilog2(wqsize); in iwch_create_qp()
948 qhp->wq.rq_size_log2 = ilog2(rqsize); in iwch_create_qp()
949 qhp->wq.sq_size_log2 = ilog2(sqsize); in iwch_create_qp()
950 if (cxio_create_qp(&rhp->rdev, !udata, &qhp->wq, in iwch_create_qp()
952 kfree(qhp); in iwch_create_qp()
960 qhp->rhp = rhp; in iwch_create_qp()
961 qhp->attr.pd = php->pdid; in iwch_create_qp()
962 qhp->attr.scq = ((struct iwch_cq *) attrs->send_cq)->cq.cqid; in iwch_create_qp()
963 qhp->attr.rcq = ((struct iwch_cq *) attrs->recv_cq)->cq.cqid; in iwch_create_qp()
964 qhp->attr.sq_num_entries = attrs->cap.max_send_wr; in iwch_create_qp()
965 qhp->attr.rq_num_entries = attrs->cap.max_recv_wr; in iwch_create_qp()
966 qhp->attr.sq_max_sges = attrs->cap.max_send_sge; in iwch_create_qp()
967 qhp->attr.sq_max_sges_rdma_write = attrs->cap.max_send_sge; in iwch_create_qp()
968 qhp->attr.rq_max_sges = attrs->cap.max_recv_sge; in iwch_create_qp()
969 qhp->attr.state = IWCH_QP_STATE_IDLE; in iwch_create_qp()
970 qhp->attr.next_state = IWCH_QP_STATE_IDLE; in iwch_create_qp()
977 qhp->attr.enable_rdma_read = 1; in iwch_create_qp()
978 qhp->attr.enable_rdma_write = 1; in iwch_create_qp()
979 qhp->attr.enable_bind = 1; in iwch_create_qp()
980 qhp->attr.max_ord = 1; in iwch_create_qp()
981 qhp->attr.max_ird = 1; in iwch_create_qp()
983 spin_lock_init(&qhp->lock); in iwch_create_qp()
984 init_waitqueue_head(&qhp->wait); in iwch_create_qp()
985 atomic_set(&qhp->refcnt, 1); in iwch_create_qp()
987 if (insert_handle(rhp, &rhp->qpidr, qhp, qhp->wq.qpid)) { in iwch_create_qp()
988 cxio_destroy_qp(&rhp->rdev, &qhp->wq, in iwch_create_qp()
990 kfree(qhp); in iwch_create_qp()
1000 iwch_destroy_qp(&qhp->ibqp); in iwch_create_qp()
1007 iwch_destroy_qp(&qhp->ibqp); in iwch_create_qp()
1011 uresp.qpid = qhp->wq.qpid; in iwch_create_qp()
1012 uresp.size_log2 = qhp->wq.size_log2; in iwch_create_qp()
1013 uresp.sq_size_log2 = qhp->wq.sq_size_log2; in iwch_create_qp()
1014 uresp.rq_size_log2 = qhp->wq.rq_size_log2; in iwch_create_qp()
1024 iwch_destroy_qp(&qhp->ibqp); in iwch_create_qp()
1028 mm1->addr = virt_to_phys(qhp->wq.queue); in iwch_create_qp()
1032 mm2->addr = qhp->wq.udb & PAGE_MASK; in iwch_create_qp()
1036 qhp->ibqp.qp_num = qhp->wq.qpid; in iwch_create_qp()
1037 init_timer(&(qhp->timer)); in iwch_create_qp()
1040 __func__, qhp->attr.sq_num_entries, qhp->attr.rq_num_entries, in iwch_create_qp()
1041 qhp->wq.qpid, qhp, (unsigned long long) qhp->wq.dma_addr, in iwch_create_qp()
1042 1 << qhp->wq.size_log2, qhp->wq.rq_addr); in iwch_create_qp()
1043 return &qhp->ibqp; in iwch_create_qp()
1050 struct iwch_qp *qhp; in iwch_ib_modify_qp() local
1065 qhp = to_iwch_qp(ibqp); in iwch_ib_modify_qp()
1066 rhp = qhp->rhp; in iwch_ib_modify_qp()
1082 return iwch_modify_qp(rhp, qhp, mask, &attrs, 0); in iwch_ib_modify_qp()