Lines Matching refs:chp
127 struct iwch_cq *chp; in iwch_destroy_cq() local
130 chp = to_iwch_cq(ib_cq); in iwch_destroy_cq()
132 remove_handle(chp->rhp, &chp->rhp->cqidr, chp->cq.cqid); in iwch_destroy_cq()
133 atomic_dec(&chp->refcnt); in iwch_destroy_cq()
134 wait_event(chp->wait, !atomic_read(&chp->refcnt)); in iwch_destroy_cq()
136 cxio_destroy_cq(&chp->rhp->rdev, &chp->cq); in iwch_destroy_cq()
137 kfree(chp); in iwch_destroy_cq()
146 struct iwch_cq *chp; in iwch_create_cq() local
155 chp = kzalloc(sizeof(*chp), GFP_KERNEL); in iwch_create_cq()
156 if (!chp) in iwch_create_cq()
163 kfree(chp); in iwch_create_cq()
166 chp->user_rptr_addr = (u32 __user *)(unsigned long)ureq.user_rptr_addr; in iwch_create_cq()
184 chp->cq.size_log2 = ilog2(entries); in iwch_create_cq()
186 if (cxio_create_cq(&rhp->rdev, &chp->cq, !ucontext)) { in iwch_create_cq()
187 kfree(chp); in iwch_create_cq()
190 chp->rhp = rhp; in iwch_create_cq()
191 chp->ibcq.cqe = 1 << chp->cq.size_log2; in iwch_create_cq()
192 spin_lock_init(&chp->lock); in iwch_create_cq()
193 spin_lock_init(&chp->comp_handler_lock); in iwch_create_cq()
194 atomic_set(&chp->refcnt, 1); in iwch_create_cq()
195 init_waitqueue_head(&chp->wait); in iwch_create_cq()
196 if (insert_handle(rhp, &rhp->cqidr, chp, chp->cq.cqid)) { in iwch_create_cq()
197 cxio_destroy_cq(&chp->rhp->rdev, &chp->cq); in iwch_create_cq()
198 kfree(chp); in iwch_create_cq()
207 iwch_destroy_cq(&chp->ibcq); in iwch_create_cq()
210 uresp.cqid = chp->cq.cqid; in iwch_create_cq()
211 uresp.size_log2 = chp->cq.size_log2; in iwch_create_cq()
217 mm->addr = virt_to_phys(chp->cq.queue); in iwch_create_cq()
234 iwch_destroy_cq(&chp->ibcq); in iwch_create_cq()
240 chp->cq.cqid, chp, (1 << chp->cq.size_log2), in iwch_create_cq()
241 (unsigned long long) chp->cq.dma_addr); in iwch_create_cq()
242 return &chp->ibcq; in iwch_create_cq()
248 struct iwch_cq *chp = to_iwch_cq(cq); in iwch_resize_cq() local
263 if (cqe < Q_COUNT(chp->cq.rptr, chp->cq.wptr)) { in iwch_resize_cq()
268 ret = iwch_quiesce_qps(chp); in iwch_resize_cq()
273 ret = cxio_create_cq(&chp->rhp->rdev, &newcq); in iwch_resize_cq()
279 memcpy(newcq.queue, chp->cq.queue, (1 << chp->cq.size_log2) * in iwch_resize_cq()
283 oldcq = chp->cq; in iwch_resize_cq()
284 chp->cq = newcq; in iwch_resize_cq()
285 chp->cq.cqid = oldcq.cqid; in iwch_resize_cq()
288 ret = cxio_resize_cq(&chp->rhp->rdev, &chp->cq); in iwch_resize_cq()
290 chp->cq = oldcq; in iwch_resize_cq()
293 chp->ibcq.cqe = (1<<chp->cq.size_log2) - 1; in iwch_resize_cq()
297 ret = cxio_destroy_cq(&chp->rhp->rdev, &oldcq); in iwch_resize_cq()
306 ret = iwch_resume_qps(chp); in iwch_resize_cq()
316 struct iwch_cq *chp; in iwch_arm_cq() local
322 chp = to_iwch_cq(ibcq); in iwch_arm_cq()
323 rhp = chp->rhp; in iwch_arm_cq()
328 if (chp->user_rptr_addr) { in iwch_arm_cq()
329 if (get_user(rptr, chp->user_rptr_addr)) in iwch_arm_cq()
331 spin_lock_irqsave(&chp->lock, flag); in iwch_arm_cq()
332 chp->cq.rptr = rptr; in iwch_arm_cq()
334 spin_lock_irqsave(&chp->lock, flag); in iwch_arm_cq()
335 PDBG("%s rptr 0x%x\n", __func__, chp->cq.rptr); in iwch_arm_cq()
336 err = cxio_hal_cq_op(&rhp->rdev, &chp->cq, cq_op, 0); in iwch_arm_cq()
337 spin_unlock_irqrestore(&chp->lock, flag); in iwch_arm_cq()
340 chp->cq.cqid); in iwch_arm_cq()