Lines Matching refs:rcd
279 static inline void *qib_get_egrbuf(const struct qib_ctxtdata *rcd, u32 etail)
281 const u32 chunk = etail >> rcd->rcvegrbufs_perchunk_shift;
282 const u32 idx = etail & ((u32)rcd->rcvegrbufs_perchunk - 1);
284 return rcd->rcvegrbuf[chunk] + (idx << rcd->dd->rcvegrbufsize_shift);
291 static u32 qib_rcv_hdrerr(struct qib_ctxtdata *rcd, struct qib_pportdata *ppd,
405 &rcd->qp_wait_list);
431 * @rcd: the qlogic_ib context
440 u32 qib_kreceive(struct qib_ctxtdata *rcd, u32 *llic, u32 *npkts)
442 struct qib_devdata *dd = rcd->dd;
443 struct qib_pportdata *ppd = rcd->ppd;
455 l = rcd->head;
456 rhf_addr = (__le32 *) rcd->rcvhdrq + l + dd->rhf_offset;
460 if (seq != rcd->seq_cnt)
464 hdrqtail = qib_get_rcvhdrtail(rcd);
484 ebuf = qib_get_egrbuf(rcd, etail);
508 crcs += qib_rcv_hdrerr(rcd, ppd, rcd->ctxt, eflags, l,
511 qib_ib_rcv(rcd, hdr, ebuf, tlen);
524 rhf_addr = (__le32 *) rcd->rcvhdrq + l + dd->rhf_offset;
528 if (++rcd->seq_cnt > 13)
529 rcd->seq_cnt = 1;
530 if (seq != rcd->seq_cnt)
542 dd->f_update_usrhead(rcd, lval, updegr, etail, i);
547 rcd->head = l;
553 list_for_each_entry_safe(qp, nqp, &rcd->qp_wait_list, rspwait) {
581 lval = (u64)rcd->head | dd->rhdrhead_intr_off;
582 dd->f_update_usrhead(rcd, lval, updegr, etail, i);
762 if (dd->rcd)
764 if (!dd->rcd[i] || !dd->rcd[i]->cnt)