Lines Matching refs:rcd
280 static inline void *qib_get_egrbuf(const struct qib_ctxtdata *rcd, u32 etail)
282 const u32 chunk = etail >> rcd->rcvegrbufs_perchunk_shift;
283 const u32 idx = etail & ((u32)rcd->rcvegrbufs_perchunk - 1);
285 return rcd->rcvegrbuf[chunk] + (idx << rcd->dd->rcvegrbufsize_shift);
292 static u32 qib_rcv_hdrerr(struct qib_ctxtdata *rcd, struct qib_pportdata *ppd,
406 &rcd->qp_wait_list);
432 * @rcd: the qlogic_ib context
441 u32 qib_kreceive(struct qib_ctxtdata *rcd, u32 *llic, u32 *npkts)
443 struct qib_devdata *dd = rcd->dd;
444 struct qib_pportdata *ppd = rcd->ppd;
456 l = rcd->head;
457 rhf_addr = (__le32 *) rcd->rcvhdrq + l + dd->rhf_offset;
461 if (seq != rcd->seq_cnt)
465 hdrqtail = qib_get_rcvhdrtail(rcd);
485 ebuf = qib_get_egrbuf(rcd, etail);
509 crcs += qib_rcv_hdrerr(rcd, ppd, rcd->ctxt, eflags, l,
512 qib_ib_rcv(rcd, hdr, ebuf, tlen);
525 rhf_addr = (__le32 *) rcd->rcvhdrq + l + dd->rhf_offset;
529 if (++rcd->seq_cnt > 13)
530 rcd->seq_cnt = 1;
531 if (seq != rcd->seq_cnt)
543 dd->f_update_usrhead(rcd, lval, updegr, etail, i);
548 rcd->head = l;
554 list_for_each_entry_safe(qp, nqp, &rcd->qp_wait_list, rspwait) {
582 lval = (u64)rcd->head | dd->rhdrhead_intr_off;
583 dd->f_update_usrhead(rcd, lval, updegr, etail, i);
763 if (dd->rcd)
765 if (!dd->rcd[i] || !dd->rcd[i]->cnt)