Lines Matching refs:qhp
890 struct iwch_qp *qhp; in iwch_destroy_qp() local
894 qhp = to_iwch_qp(ib_qp); in iwch_destroy_qp()
895 rhp = qhp->rhp; in iwch_destroy_qp()
898 iwch_modify_qp(rhp, qhp, IWCH_QP_ATTR_NEXT_STATE, &attrs, 0); in iwch_destroy_qp()
899 wait_event(qhp->wait, !qhp->ep); in iwch_destroy_qp()
901 remove_handle(rhp, &rhp->qpidr, qhp->wq.qpid); in iwch_destroy_qp()
903 atomic_dec(&qhp->refcnt); in iwch_destroy_qp()
904 wait_event(qhp->wait, !atomic_read(&qhp->refcnt)); in iwch_destroy_qp()
908 cxio_destroy_qp(&rhp->rdev, &qhp->wq, in iwch_destroy_qp()
912 ib_qp, qhp->wq.qpid, qhp); in iwch_destroy_qp()
913 kfree(qhp); in iwch_destroy_qp()
922 struct iwch_qp *qhp; in iwch_create_qp() local
973 qhp = kzalloc(sizeof(*qhp), GFP_KERNEL); in iwch_create_qp()
974 if (!qhp) in iwch_create_qp()
976 qhp->wq.size_log2 = ilog2(wqsize); in iwch_create_qp()
977 qhp->wq.rq_size_log2 = ilog2(rqsize); in iwch_create_qp()
978 qhp->wq.sq_size_log2 = ilog2(sqsize); in iwch_create_qp()
979 if (cxio_create_qp(&rhp->rdev, !udata, &qhp->wq, in iwch_create_qp()
981 kfree(qhp); in iwch_create_qp()
989 qhp->rhp = rhp; in iwch_create_qp()
990 qhp->attr.pd = php->pdid; in iwch_create_qp()
991 qhp->attr.scq = ((struct iwch_cq *) attrs->send_cq)->cq.cqid; in iwch_create_qp()
992 qhp->attr.rcq = ((struct iwch_cq *) attrs->recv_cq)->cq.cqid; in iwch_create_qp()
993 qhp->attr.sq_num_entries = attrs->cap.max_send_wr; in iwch_create_qp()
994 qhp->attr.rq_num_entries = attrs->cap.max_recv_wr; in iwch_create_qp()
995 qhp->attr.sq_max_sges = attrs->cap.max_send_sge; in iwch_create_qp()
996 qhp->attr.sq_max_sges_rdma_write = attrs->cap.max_send_sge; in iwch_create_qp()
997 qhp->attr.rq_max_sges = attrs->cap.max_recv_sge; in iwch_create_qp()
998 qhp->attr.state = IWCH_QP_STATE_IDLE; in iwch_create_qp()
999 qhp->attr.next_state = IWCH_QP_STATE_IDLE; in iwch_create_qp()
1006 qhp->attr.enable_rdma_read = 1; in iwch_create_qp()
1007 qhp->attr.enable_rdma_write = 1; in iwch_create_qp()
1008 qhp->attr.enable_bind = 1; in iwch_create_qp()
1009 qhp->attr.max_ord = 1; in iwch_create_qp()
1010 qhp->attr.max_ird = 1; in iwch_create_qp()
1012 spin_lock_init(&qhp->lock); in iwch_create_qp()
1013 init_waitqueue_head(&qhp->wait); in iwch_create_qp()
1014 atomic_set(&qhp->refcnt, 1); in iwch_create_qp()
1016 if (insert_handle(rhp, &rhp->qpidr, qhp, qhp->wq.qpid)) { in iwch_create_qp()
1017 cxio_destroy_qp(&rhp->rdev, &qhp->wq, in iwch_create_qp()
1019 kfree(qhp); in iwch_create_qp()
1029 iwch_destroy_qp(&qhp->ibqp); in iwch_create_qp()
1036 iwch_destroy_qp(&qhp->ibqp); in iwch_create_qp()
1040 uresp.qpid = qhp->wq.qpid; in iwch_create_qp()
1041 uresp.size_log2 = qhp->wq.size_log2; in iwch_create_qp()
1042 uresp.sq_size_log2 = qhp->wq.sq_size_log2; in iwch_create_qp()
1043 uresp.rq_size_log2 = qhp->wq.rq_size_log2; in iwch_create_qp()
1053 iwch_destroy_qp(&qhp->ibqp); in iwch_create_qp()
1057 mm1->addr = virt_to_phys(qhp->wq.queue); in iwch_create_qp()
1061 mm2->addr = qhp->wq.udb & PAGE_MASK; in iwch_create_qp()
1065 qhp->ibqp.qp_num = qhp->wq.qpid; in iwch_create_qp()
1066 init_timer(&(qhp->timer)); in iwch_create_qp()
1069 __func__, qhp->attr.sq_num_entries, qhp->attr.rq_num_entries, in iwch_create_qp()
1070 qhp->wq.qpid, qhp, (unsigned long long) qhp->wq.dma_addr, in iwch_create_qp()
1071 1 << qhp->wq.size_log2, qhp->wq.rq_addr); in iwch_create_qp()
1072 return &qhp->ibqp; in iwch_create_qp()
1079 struct iwch_qp *qhp; in iwch_ib_modify_qp() local
1094 qhp = to_iwch_qp(ibqp); in iwch_ib_modify_qp()
1095 rhp = qhp->rhp; in iwch_ib_modify_qp()
1111 return iwch_modify_qp(rhp, qhp, mask, &attrs, 0); in iwch_ib_modify_qp()