Lines Matching refs:rcd
101 struct qib_ctxtdata *rcd = ctxt_fp(fp); in qib_get_base_info() local
104 struct qib_devdata *dd = rcd->dd; in qib_get_base_info()
105 struct qib_pportdata *ppd = rcd->ppd; in qib_get_base_info()
110 subctxt_cnt = rcd->subctxt_cnt; in qib_get_base_info()
135 ret = dd->f_get_base_info(rcd, kinfo); in qib_get_base_info()
141 kinfo->spi_tidegrcnt = rcd->rcvegrcnt; in qib_get_base_info()
147 rcd->rcvegrbuf_chunks * rcd->rcvegrbuf_size; in qib_get_base_info()
148 kinfo->spi_rcv_egrperchunk = rcd->rcvegrbufs_perchunk; in qib_get_base_info()
150 rcd->rcvegrbuf_chunks; in qib_get_base_info()
184 kinfo->spi_rcvhdr_base = (u64) rcd->rcvhdrq_phys; in qib_get_base_info()
185 kinfo->spi_rcvhdr_tailaddr = (u64) rcd->rcvhdrqtailaddr_phys; in qib_get_base_info()
187 kinfo->spi_rcv_egrbufs = (u64) rcd->rcvegr_phys; in qib_get_base_info()
193 kinfo->spi_uregbase = (u64) dd->uregbase + dd->ureg_align * rcd->ctxt; in qib_get_base_info()
195 kinfo->spi_piocnt = rcd->piocnt; in qib_get_base_info()
196 kinfo->spi_piobufbase = (u64) rcd->piobufs; in qib_get_base_info()
197 kinfo->spi_sendbuf_status = cvt_kvaddr(rcd->user_event_mask); in qib_get_base_info()
199 kinfo->spi_piocnt = (rcd->piocnt / subctxt_cnt) + in qib_get_base_info()
200 (rcd->piocnt % subctxt_cnt); in qib_get_base_info()
202 kinfo->spi_piobufbase = (u64) rcd->piobufs + in qib_get_base_info()
204 (rcd->piocnt - kinfo->spi_piocnt); in qib_get_base_info()
208 kinfo->spi_piocnt = rcd->piocnt / subctxt_cnt; in qib_get_base_info()
209 kinfo->spi_piobufbase = (u64) rcd->piobufs + in qib_get_base_info()
215 cvt_kvaddr(&rcd->user_event_mask[subctxt_fp(fp)]); in qib_get_base_info()
217 kinfo->spi_subctxt_uregbase = cvt_kvaddr(rcd->subctxt_uregbase); in qib_get_base_info()
220 cvt_kvaddr(rcd->subctxt_rcvegrbuf); in qib_get_base_info()
222 cvt_kvaddr(rcd->subctxt_rcvhdr_base); in qib_get_base_info()
242 kinfo->spi_ctxt = rcd->ctxt; in qib_get_base_info()
284 static int qib_tid_update(struct qib_ctxtdata *rcd, struct file *fp, in qib_tid_update() argument
290 struct qib_devdata *dd = rcd->dd; in qib_tid_update()
308 ctxttid = rcd->ctxt * dd->rcvtidcnt; in qib_tid_update()
309 if (!rcd->subctxt_cnt) { in qib_tid_update()
311 tid = rcd->tidcursor; in qib_tid_update()
314 tidcnt = (dd->rcvtidcnt / rcd->subctxt_cnt) + in qib_tid_update()
315 (dd->rcvtidcnt % rcd->subctxt_cnt); in qib_tid_update()
320 tidcnt = dd->rcvtidcnt / rcd->subctxt_cnt; in qib_tid_update()
332 pagep = (struct page **) rcd->tid_pg_list; in qib_tid_update()
457 if (!rcd->subctxt_cnt) in qib_tid_update()
458 rcd->tidcursor = tid; in qib_tid_update()
483 static int qib_tid_free(struct qib_ctxtdata *rcd, unsigned subctxt, in qib_tid_free() argument
488 struct qib_devdata *dd = rcd->dd; in qib_tid_free()
503 ctxttid = rcd->ctxt * dd->rcvtidcnt; in qib_tid_free()
504 if (!rcd->subctxt_cnt) in qib_tid_free()
507 tidcnt = (dd->rcvtidcnt / rcd->subctxt_cnt) + in qib_tid_free()
508 (dd->rcvtidcnt % rcd->subctxt_cnt); in qib_tid_free()
511 tidcnt = dd->rcvtidcnt / rcd->subctxt_cnt; in qib_tid_free()
572 static int qib_set_part_key(struct qib_ctxtdata *rcd, u16 key) in qib_set_part_key() argument
574 struct qib_pportdata *ppd = rcd->ppd; in qib_set_part_key()
594 for (i = 0; i < ARRAY_SIZE(rcd->pkeys); i++) { in qib_set_part_key()
595 if (!rcd->pkeys[i] && pidx == -1) in qib_set_part_key()
597 if (rcd->pkeys[i] == key) in qib_set_part_key()
611 rcd->pkeys[pidx] = key; in qib_set_part_key()
633 rcd->pkeys[pidx] = key; in qib_set_part_key()
652 static int qib_manage_rcvq(struct qib_ctxtdata *rcd, unsigned subctxt, in qib_manage_rcvq() argument
655 struct qib_devdata *dd = rcd->dd; in qib_manage_rcvq()
670 if (rcd->rcvhdrtail_kvaddr) in qib_manage_rcvq()
671 qib_clear_rcvhdrtail(rcd); in qib_manage_rcvq()
675 dd->f_rcvctrl(rcd->ppd, rcvctrl_op, rcd->ctxt); in qib_manage_rcvq()
681 static void qib_clean_part_key(struct qib_ctxtdata *rcd, in qib_clean_part_key() argument
685 struct qib_pportdata *ppd = rcd->ppd; in qib_clean_part_key()
687 for (i = 0; i < ARRAY_SIZE(rcd->pkeys); i++) { in qib_clean_part_key()
688 if (!rcd->pkeys[i]) in qib_clean_part_key()
693 (rcd->pkeys[i] & 0x7fff)) in qib_clean_part_key()
701 rcd->pkeys[i] = 0; in qib_clean_part_key()
708 static int qib_mmap_mem(struct vm_area_struct *vma, struct qib_ctxtdata *rcd, in qib_mmap_mem() argument
711 struct qib_devdata *dd = rcd->dd; in qib_mmap_mem()
745 what, rcd->ctxt, pfn, len, ret); in qib_mmap_mem()
783 struct qib_ctxtdata *rcd, in mmap_piobufs() argument
827 struct qib_ctxtdata *rcd) in mmap_rcvegrbufs() argument
829 struct qib_devdata *dd = rcd->dd; in mmap_rcvegrbufs()
835 size = rcd->rcvegrbuf_size; in mmap_rcvegrbufs()
836 total_size = rcd->rcvegrbuf_chunks * size; in mmap_rcvegrbufs()
858 for (i = 0; i < rcd->rcvegrbuf_chunks; i++, start += size) { in mmap_rcvegrbufs()
859 pfn = virt_to_phys(rcd->rcvegrbuf[i]) >> PAGE_SHIFT; in mmap_rcvegrbufs()
893 struct qib_ctxtdata *rcd, unsigned subctxt) in mmap_kvaddr() argument
895 struct qib_devdata *dd = rcd->dd; in mmap_kvaddr()
902 subctxt_cnt = rcd->subctxt_cnt; in mmap_kvaddr()
903 size = rcd->rcvegrbuf_chunks * rcd->rcvegrbuf_size; in mmap_kvaddr()
910 if (pgaddr == cvt_kvaddr(rcd->subctxt_uregbase)) { in mmap_kvaddr()
911 addr = rcd->subctxt_uregbase; in mmap_kvaddr()
913 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvhdr_base)) { in mmap_kvaddr()
914 addr = rcd->subctxt_rcvhdr_base; in mmap_kvaddr()
915 size = rcd->rcvhdrq_size * subctxt_cnt; in mmap_kvaddr()
916 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvegrbuf)) { in mmap_kvaddr()
917 addr = rcd->subctxt_rcvegrbuf; in mmap_kvaddr()
919 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_uregbase + in mmap_kvaddr()
921 addr = rcd->subctxt_uregbase + PAGE_SIZE * subctxt; in mmap_kvaddr()
923 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvhdr_base + in mmap_kvaddr()
924 rcd->rcvhdrq_size * subctxt)) { in mmap_kvaddr()
925 addr = rcd->subctxt_rcvhdr_base + in mmap_kvaddr()
926 rcd->rcvhdrq_size * subctxt; in mmap_kvaddr()
927 size = rcd->rcvhdrq_size; in mmap_kvaddr()
928 } else if (pgaddr == cvt_kvaddr(&rcd->user_event_mask[subctxt])) { in mmap_kvaddr()
929 addr = rcd->user_event_mask; in mmap_kvaddr()
931 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvegrbuf + in mmap_kvaddr()
933 addr = rcd->subctxt_rcvegrbuf + size * subctxt; in mmap_kvaddr()
976 struct qib_ctxtdata *rcd; in qib_mmapf() local
982 rcd = ctxt_fp(fp); in qib_mmapf()
983 if (!rcd || !(vma->vm_flags & VM_SHARED)) { in qib_mmapf()
987 dd = rcd->dd; in qib_mmapf()
1014 ret = mmap_kvaddr(vma, pgaddr, rcd, subctxt_fp(fp)); in qib_mmapf()
1021 ureg = dd->uregbase + dd->ureg_align * rcd->ctxt; in qib_mmapf()
1022 if (!rcd->subctxt_cnt) { in qib_mmapf()
1024 piocnt = rcd->piocnt; in qib_mmapf()
1025 piobufs = rcd->piobufs; in qib_mmapf()
1028 piocnt = (rcd->piocnt / rcd->subctxt_cnt) + in qib_mmapf()
1029 (rcd->piocnt % rcd->subctxt_cnt); in qib_mmapf()
1030 piobufs = rcd->piobufs + in qib_mmapf()
1031 dd->palign * (rcd->piocnt - piocnt); in qib_mmapf()
1036 piocnt = rcd->piocnt / rcd->subctxt_cnt; in qib_mmapf()
1037 piobufs = rcd->piobufs + dd->palign * piocnt * slave; in qib_mmapf()
1043 ret = mmap_piobufs(vma, dd, rcd, piobufs, piocnt); in qib_mmapf()
1046 ret = qib_mmap_mem(vma, rcd, PAGE_SIZE, in qib_mmapf()
1049 else if (pgaddr == rcd->rcvegr_phys) in qib_mmapf()
1050 ret = mmap_rcvegrbufs(vma, rcd); in qib_mmapf()
1051 else if (pgaddr == (u64) rcd->rcvhdrq_phys) in qib_mmapf()
1057 ret = qib_mmap_mem(vma, rcd, rcd->rcvhdrq_size, in qib_mmapf()
1058 rcd->rcvhdrq, 1, "rcvhdrq"); in qib_mmapf()
1059 else if (pgaddr == (u64) rcd->rcvhdrqtailaddr_phys) in qib_mmapf()
1061 ret = qib_mmap_mem(vma, rcd, PAGE_SIZE, in qib_mmapf()
1062 rcd->rcvhdrtail_kvaddr, 0, in qib_mmapf()
1080 static __poll_t qib_poll_urgent(struct qib_ctxtdata *rcd, in qib_poll_urgent() argument
1084 struct qib_devdata *dd = rcd->dd; in qib_poll_urgent()
1087 poll_wait(fp, &rcd->wait, pt); in qib_poll_urgent()
1090 if (rcd->urgent != rcd->urgent_poll) { in qib_poll_urgent()
1092 rcd->urgent_poll = rcd->urgent; in qib_poll_urgent()
1095 set_bit(QIB_CTXT_WAITING_URG, &rcd->flag); in qib_poll_urgent()
1102 static __poll_t qib_poll_next(struct qib_ctxtdata *rcd, in qib_poll_next() argument
1106 struct qib_devdata *dd = rcd->dd; in qib_poll_next()
1109 poll_wait(fp, &rcd->wait, pt); in qib_poll_next()
1112 if (dd->f_hdrqempty(rcd)) { in qib_poll_next()
1113 set_bit(QIB_CTXT_WAITING_RCV, &rcd->flag); in qib_poll_next()
1114 dd->f_rcvctrl(rcd->ppd, QIB_RCVCTRL_INTRAVAIL_ENB, rcd->ctxt); in qib_poll_next()
1125 struct qib_ctxtdata *rcd; in qib_poll() local
1128 rcd = ctxt_fp(fp); in qib_poll()
1129 if (!rcd) in qib_poll()
1131 else if (rcd->poll_type == QIB_POLL_TYPE_URGENT) in qib_poll()
1132 pollflag = qib_poll_urgent(rcd, fp, pt); in qib_poll()
1133 else if (rcd->poll_type == QIB_POLL_TYPE_ANYRCV) in qib_poll()
1134 pollflag = qib_poll_next(rcd, fp, pt); in qib_poll()
1215 struct qib_ctxtdata *rcd, in init_subctxts() argument
1245 rcd->subctxt_uregbase = vmalloc_user(PAGE_SIZE * num_subctxts); in init_subctxts()
1246 if (!rcd->subctxt_uregbase) { in init_subctxts()
1253 rcd->subctxt_rcvhdr_base = vmalloc_user(size); in init_subctxts()
1254 if (!rcd->subctxt_rcvhdr_base) { in init_subctxts()
1259 rcd->subctxt_rcvegrbuf = vmalloc_user(rcd->rcvegrbuf_chunks * in init_subctxts()
1260 rcd->rcvegrbuf_size * in init_subctxts()
1262 if (!rcd->subctxt_rcvegrbuf) { in init_subctxts()
1267 rcd->subctxt_cnt = uinfo->spu_subctxt_cnt; in init_subctxts()
1268 rcd->subctxt_id = uinfo->spu_subctxt_id; in init_subctxts()
1269 rcd->active_slaves = 1; in init_subctxts()
1270 rcd->redirect_seq_cnt = 1; in init_subctxts()
1271 set_bit(QIB_CTXT_MASTER_UNINIT, &rcd->flag); in init_subctxts()
1275 vfree(rcd->subctxt_rcvhdr_base); in init_subctxts()
1277 vfree(rcd->subctxt_uregbase); in init_subctxts()
1278 rcd->subctxt_uregbase = NULL; in init_subctxts()
1288 struct qib_ctxtdata *rcd; in setup_ctxt() local
1299 rcd = qib_create_ctxtdata(ppd, ctxt, numa_id); in setup_ctxt()
1305 if (rcd) in setup_ctxt()
1310 if (!rcd || !ptmp) { in setup_ctxt()
1316 rcd->userversion = uinfo->spu_userversion; in setup_ctxt()
1317 ret = init_subctxts(dd, rcd, uinfo); in setup_ctxt()
1320 rcd->tid_pg_list = ptmp; in setup_ctxt()
1321 rcd->pid = current->pid; in setup_ctxt()
1322 init_waitqueue_head(&dd->rcd[ctxt]->wait); in setup_ctxt()
1323 get_task_comm(rcd->comm, current); in setup_ctxt()
1324 ctxt_fp(fp) = rcd; in setup_ctxt()
1334 dd->rcd[ctxt] = NULL; in setup_ctxt()
1335 kfree(rcd); in setup_ctxt()
1366 for (ctxt = dd->first_user_ctxt; ctxt < dd->cfgctxts && dd->rcd[ctxt]; in choose_port_ctxt()
1442 if (dd->rcd[ctxt]) in get_a_ctxt()
1489 struct qib_ctxtdata *rcd = dd->rcd[i]; in find_shared_ctxt() local
1492 if (!rcd || !rcd->cnt) in find_shared_ctxt()
1495 if (rcd->subctxt_id != uinfo->spu_subctxt_id) in find_shared_ctxt()
1498 if (rcd->subctxt_cnt != uinfo->spu_subctxt_cnt || in find_shared_ctxt()
1499 rcd->userversion != uinfo->spu_userversion || in find_shared_ctxt()
1500 rcd->cnt >= rcd->subctxt_cnt) { in find_shared_ctxt()
1504 ctxt_fp(fp) = rcd; in find_shared_ctxt()
1505 subctxt_fp(fp) = rcd->cnt++; in find_shared_ctxt()
1506 rcd->subpid[subctxt_fp(fp)] = current->pid; in find_shared_ctxt()
1508 rcd->active_slaves |= 1 << subctxt_fp(fp); in find_shared_ctxt()
1564 struct qib_ctxtdata *rcd = fd->rcd; in do_qib_user_sdma_queue_create() local
1565 struct qib_devdata *dd = rcd->dd; in do_qib_user_sdma_queue_create()
1571 rcd->ctxt, in do_qib_user_sdma_queue_create()
1652 struct qib_ctxtdata *rcd = ctxt_fp(fp); in qib_do_user_init() local
1658 ret = wait_event_interruptible(rcd->wait, in qib_do_user_init()
1659 !test_bit(QIB_CTXT_MASTER_UNINIT, &rcd->flag)); in qib_do_user_init()
1663 dd = rcd->dd; in qib_do_user_init()
1666 uctxt = rcd->ctxt - dd->first_user_ctxt; in qib_do_user_init()
1668 rcd->piocnt = dd->pbufsctxt + 1; in qib_do_user_init()
1669 rcd->pio_base = rcd->piocnt * uctxt; in qib_do_user_init()
1671 rcd->piocnt = dd->pbufsctxt; in qib_do_user_init()
1672 rcd->pio_base = rcd->piocnt * uctxt + in qib_do_user_init()
1682 if ((rcd->pio_base + rcd->piocnt) > dd->piobcnt2k) { in qib_do_user_init()
1683 if (rcd->pio_base >= dd->piobcnt2k) { in qib_do_user_init()
1686 dd->unit, rcd->ctxt); in qib_do_user_init()
1690 rcd->piocnt = dd->piobcnt2k - rcd->pio_base; in qib_do_user_init()
1692 rcd->ctxt, rcd->piocnt); in qib_do_user_init()
1695 rcd->piobufs = dd->pio2k_bufbase + rcd->pio_base * dd->palign; in qib_do_user_init()
1696 qib_chg_pioavailkernel(dd, rcd->pio_base, rcd->piocnt, in qib_do_user_init()
1697 TXCHK_CHG_TYPE_USER, rcd); in qib_do_user_init()
1716 ret = qib_create_rcvhdrq(dd, rcd); in qib_do_user_init()
1718 ret = qib_setup_eagerbufs(rcd); in qib_do_user_init()
1722 rcd->tidcursor = 0; /* start at beginning after open */ in qib_do_user_init()
1725 rcd->urgent = 0; in qib_do_user_init()
1726 rcd->urgent_poll = 0; in qib_do_user_init()
1739 if (rcd->rcvhdrtail_kvaddr) in qib_do_user_init()
1740 qib_clear_rcvhdrtail(rcd); in qib_do_user_init()
1742 dd->f_rcvctrl(rcd->ppd, QIB_RCVCTRL_CTXT_ENB | QIB_RCVCTRL_TIDFLOW_ENB, in qib_do_user_init()
1743 rcd->ctxt); in qib_do_user_init()
1746 if (rcd->subctxt_cnt) { in qib_do_user_init()
1747 clear_bit(QIB_CTXT_MASTER_UNINIT, &rcd->flag); in qib_do_user_init()
1748 wake_up(&rcd->wait); in qib_do_user_init()
1753 qib_chg_pioavailkernel(dd, rcd->pio_base, rcd->piocnt, in qib_do_user_init()
1754 TXCHK_CHG_TYPE_KERN, rcd); in qib_do_user_init()
1767 static void unlock_expected_tids(struct qib_ctxtdata *rcd) in unlock_expected_tids() argument
1769 struct qib_devdata *dd = rcd->dd; in unlock_expected_tids()
1770 int ctxt_tidbase = rcd->ctxt * dd->rcvtidcnt; in unlock_expected_tids()
1792 struct qib_ctxtdata *rcd; in qib_close() local
1801 rcd = fd->rcd; in qib_close()
1802 if (!rcd) { in qib_close()
1807 dd = rcd->dd; in qib_close()
1814 qib_user_sdma_queue_drain(rcd->ppd, fd->pq); in qib_close()
1821 if (--rcd->cnt) { in qib_close()
1827 rcd->active_slaves &= ~(1 << fd->subctxt); in qib_close()
1828 rcd->subpid[fd->subctxt] = 0; in qib_close()
1835 ctxt = rcd->ctxt; in qib_close()
1836 dd->rcd[ctxt] = NULL; in qib_close()
1837 rcd->pid = 0; in qib_close()
1840 if (rcd->rcvwait_to || rcd->piowait_to || in qib_close()
1841 rcd->rcvnowait || rcd->pionowait) { in qib_close()
1842 rcd->rcvwait_to = 0; in qib_close()
1843 rcd->piowait_to = 0; in qib_close()
1844 rcd->rcvnowait = 0; in qib_close()
1845 rcd->pionowait = 0; in qib_close()
1847 if (rcd->flag) in qib_close()
1848 rcd->flag = 0; in qib_close()
1852 dd->f_rcvctrl(rcd->ppd, QIB_RCVCTRL_CTXT_DIS | in qib_close()
1856 qib_clean_part_key(rcd, dd); in qib_close()
1857 qib_disarm_piobufs(dd, rcd->pio_base, rcd->piocnt); in qib_close()
1858 qib_chg_pioavailkernel(dd, rcd->pio_base, in qib_close()
1859 rcd->piocnt, TXCHK_CHG_TYPE_KERN, NULL); in qib_close()
1861 dd->f_clear_tids(dd, rcd); in qib_close()
1864 unlock_expected_tids(rcd); in qib_close()
1870 qib_free_ctxtdata(dd, rcd); /* after releasing the mutex */ in qib_close()
1882 struct qib_ctxtdata *rcd = ctxt_fp(fp); in qib_ctxt_info() local
1888 info.unit = rcd->dd->unit; in qib_ctxt_info()
1889 info.port = rcd->ppd->port; in qib_ctxt_info()
1890 info.ctxt = rcd->ctxt; in qib_ctxt_info()
1893 info.num_ctxts = rcd->dd->cfgctxts - rcd->dd->first_user_ctxt; in qib_ctxt_info()
1894 info.num_subctxts = rcd->subctxt_cnt; in qib_ctxt_info()
1940 static int disarm_req_delay(struct qib_ctxtdata *rcd) in disarm_req_delay() argument
1944 if (!usable(rcd->ppd)) { in disarm_req_delay()
1952 if (rcd->user_event_mask) { in disarm_req_delay()
1958 &rcd->user_event_mask[0]); in disarm_req_delay()
1959 for (i = 1; i < rcd->subctxt_cnt; i++) in disarm_req_delay()
1961 &rcd->user_event_mask[i]); in disarm_req_delay()
1963 for (i = 0; !usable(rcd->ppd) && i < 300; i++) in disarm_req_delay()
1977 struct qib_ctxtdata *rcd; in qib_set_uevent_bits() local
1985 rcd = ppd->dd->rcd[ctxt]; in qib_set_uevent_bits()
1986 if (!rcd) in qib_set_uevent_bits()
1988 if (rcd->user_event_mask) { in qib_set_uevent_bits()
1994 set_bit(evtbit, &rcd->user_event_mask[0]); in qib_set_uevent_bits()
1995 for (i = 1; i < rcd->subctxt_cnt; i++) in qib_set_uevent_bits()
1996 set_bit(evtbit, &rcd->user_event_mask[i]); in qib_set_uevent_bits()
2015 static int qib_user_event_ack(struct qib_ctxtdata *rcd, int subctxt, in qib_user_event_ack() argument
2024 (void)qib_disarm_piobufs_ifneeded(rcd); in qib_user_event_ack()
2025 ret = disarm_req_delay(rcd); in qib_user_event_ack()
2027 clear_bit(i, &rcd->user_event_mask[subctxt]); in qib_user_event_ack()
2036 struct qib_ctxtdata *rcd; in qib_write() local
2150 rcd = ctxt_fp(fp); in qib_write()
2151 if (!rcd && cmd.type != QIB_CMD_ASSIGN_CTXT) { in qib_write()
2158 if (rcd) { in qib_write()
2178 ret = qib_manage_rcvq(rcd, subctxt_fp(fp), cmd.cmd.recv_ctrl); in qib_write()
2187 ret = qib_tid_update(rcd, fp, &cmd.cmd.tid_info); in qib_write()
2191 ret = qib_tid_free(rcd, subctxt_fp(fp), &cmd.cmd.tid_info); in qib_write()
2195 ret = qib_set_part_key(rcd, cmd.cmd.part_key); in qib_write()
2199 (void)qib_disarm_piobufs_ifneeded(rcd); in qib_write()
2200 ret = disarm_req_delay(rcd); in qib_write()
2204 qib_force_pio_avail_update(rcd->dd); in qib_write()
2208 rcd->poll_type = cmd.cmd.poll_type; in qib_write()
2212 rcd->dd->f_set_armlaunch(rcd->dd, cmd.cmd.armlaunch_ctrl); in qib_write()
2222 ret = qib_sdma_get_complete(rcd->ppd, in qib_write()
2229 ret = qib_user_event_ack(rcd, subctxt_fp(fp), in qib_write()
2244 struct qib_ctxtdata *rcd = ctxt_fp(iocb->ki_filp); in qib_write_iter() local
2250 return qib_user_sdma_writev(rcd, pq, iter_iov(from), from->nr_segs); in qib_write_iter()