Lines Matching refs:chp

162 	struct iwch_cq *chp;
165 chp = to_iwch_cq(ib_cq);
167 remove_handle(chp->rhp, &chp->rhp->cqidr, chp->cq.cqid);
168 mtx_lock(&chp->lock);
169 if (--chp->refcnt)
170 msleep(chp, &chp->lock, 0, "iwch_destroy_cq", 0);
171 mtx_unlock(&chp->lock);
173 cxio_destroy_cq(&chp->rhp->rdev, &chp->cq);
174 cxfree(chp);
184 struct iwch_cq *chp;
194 chp = malloc(sizeof(*chp), M_DEVBUF, M_NOWAIT|M_ZERO);
195 if (!chp) {
202 cxfree(chp);
205 chp->user_rptr_addr = (u32 /*__user */*)(unsigned long)ureq.user_rptr_addr;
223 chp->cq.size_log2 = ilog2(entries);
225 if (cxio_create_cq(&rhp->rdev, &chp->cq, !ucontext)) {
226 cxfree(chp);
229 chp->rhp = rhp;
230 chp->ibcq.cqe = 1 << chp->cq.size_log2;
231 mtx_init(&chp->lock, "cxgb cq", NULL, MTX_DEF|MTX_DUPOK);
232 chp->refcnt = 1;
233 if (insert_handle(rhp, &rhp->cqidr, chp, chp->cq.cqid)) {
234 cxio_destroy_cq(&chp->rhp->rdev, &chp->cq);
235 cxfree(chp);
244 iwch_destroy_cq(&chp->ibcq);
247 uresp.cqid = chp->cq.cqid;
248 uresp.size_log2 = chp->cq.size_log2;
254 mm->addr = vtophys(chp->cq.queue);
271 iwch_destroy_cq(&chp->ibcq);
276 CTR4(KTR_IW_CXGB, "created cqid 0x%0x chp %p size 0x%0x, dma_addr 0x%0llx",
277 chp->cq.cqid, chp, (1 << chp->cq.size_log2),
278 (unsigned long long) chp->cq.dma_addr);
279 return &chp->ibcq;
294 struct iwch_cq *chp;
299 chp = to_iwch_cq(ibcq);
300 rhp = chp->rhp;
305 if (chp->user_rptr_addr) {
306 if (copyin(chp->user_rptr_addr, &rptr, sizeof(rptr)))
308 mtx_lock(&chp->lock);
309 chp->cq.rptr = rptr;
311 mtx_lock(&chp->lock);
312 CTR2(KTR_IW_CXGB, "%s rptr 0x%x", __FUNCTION__, chp->cq.rptr);
313 err = cxio_hal_cq_op(&rhp->rdev, &chp->cq, cq_op, 0);
314 mtx_unlock(&chp->lock);
317 chp->cq.cqid);