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
828 struct qib_ctxtdata *rcd) in mmap_rcvegrbufs() argument
830 struct qib_devdata *dd = rcd->dd; in mmap_rcvegrbufs()
836 size = rcd->rcvegrbuf_size; in mmap_rcvegrbufs()
837 total_size = rcd->rcvegrbuf_chunks * size; in mmap_rcvegrbufs()
859 for (i = 0; i < rcd->rcvegrbuf_chunks; i++, start += size) { in mmap_rcvegrbufs()
860 pfn = virt_to_phys(rcd->rcvegrbuf[i]) >> PAGE_SHIFT; in mmap_rcvegrbufs()
894 struct qib_ctxtdata *rcd, unsigned subctxt) in mmap_kvaddr() argument
896 struct qib_devdata *dd = rcd->dd; in mmap_kvaddr()
903 subctxt_cnt = rcd->subctxt_cnt; in mmap_kvaddr()
904 size = rcd->rcvegrbuf_chunks * rcd->rcvegrbuf_size; in mmap_kvaddr()
911 if (pgaddr == cvt_kvaddr(rcd->subctxt_uregbase)) { in mmap_kvaddr()
912 addr = rcd->subctxt_uregbase; in mmap_kvaddr()
914 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvhdr_base)) { in mmap_kvaddr()
915 addr = rcd->subctxt_rcvhdr_base; in mmap_kvaddr()
916 size = rcd->rcvhdrq_size * subctxt_cnt; in mmap_kvaddr()
917 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvegrbuf)) { in mmap_kvaddr()
918 addr = rcd->subctxt_rcvegrbuf; in mmap_kvaddr()
920 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_uregbase + in mmap_kvaddr()
922 addr = rcd->subctxt_uregbase + PAGE_SIZE * subctxt; in mmap_kvaddr()
924 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvhdr_base + in mmap_kvaddr()
925 rcd->rcvhdrq_size * subctxt)) { in mmap_kvaddr()
926 addr = rcd->subctxt_rcvhdr_base + in mmap_kvaddr()
927 rcd->rcvhdrq_size * subctxt; in mmap_kvaddr()
928 size = rcd->rcvhdrq_size; in mmap_kvaddr()
929 } else if (pgaddr == cvt_kvaddr(&rcd->user_event_mask[subctxt])) { in mmap_kvaddr()
930 addr = rcd->user_event_mask; in mmap_kvaddr()
932 } else if (pgaddr == cvt_kvaddr(rcd->subctxt_rcvegrbuf + in mmap_kvaddr()
934 addr = rcd->subctxt_rcvegrbuf + size * subctxt; in mmap_kvaddr()
977 struct qib_ctxtdata *rcd; in qib_mmapf() local
983 rcd = ctxt_fp(fp); in qib_mmapf()
984 if (!rcd || !(vma->vm_flags & VM_SHARED)) { in qib_mmapf()
988 dd = rcd->dd; in qib_mmapf()
1015 ret = mmap_kvaddr(vma, pgaddr, rcd, subctxt_fp(fp)); in qib_mmapf()
1022 ureg = dd->uregbase + dd->ureg_align * rcd->ctxt; in qib_mmapf()
1023 if (!rcd->subctxt_cnt) { in qib_mmapf()
1025 piocnt = rcd->piocnt; in qib_mmapf()
1026 piobufs = rcd->piobufs; in qib_mmapf()
1029 piocnt = (rcd->piocnt / rcd->subctxt_cnt) + in qib_mmapf()
1030 (rcd->piocnt % rcd->subctxt_cnt); in qib_mmapf()
1031 piobufs = rcd->piobufs + in qib_mmapf()
1032 dd->palign * (rcd->piocnt - piocnt); in qib_mmapf()
1037 piocnt = rcd->piocnt / rcd->subctxt_cnt; in qib_mmapf()
1038 piobufs = rcd->piobufs + dd->palign * piocnt * slave; in qib_mmapf()
1044 ret = mmap_piobufs(vma, dd, rcd, piobufs, piocnt); in qib_mmapf()
1047 ret = qib_mmap_mem(vma, rcd, PAGE_SIZE, in qib_mmapf()
1050 else if (pgaddr == rcd->rcvegr_phys) in qib_mmapf()
1051 ret = mmap_rcvegrbufs(vma, rcd); in qib_mmapf()
1052 else if (pgaddr == (u64) rcd->rcvhdrq_phys) in qib_mmapf()
1058 ret = qib_mmap_mem(vma, rcd, rcd->rcvhdrq_size, in qib_mmapf()
1059 rcd->rcvhdrq, 1, "rcvhdrq"); in qib_mmapf()
1060 else if (pgaddr == (u64) rcd->rcvhdrqtailaddr_phys) in qib_mmapf()
1062 ret = qib_mmap_mem(vma, rcd, PAGE_SIZE, in qib_mmapf()
1063 rcd->rcvhdrtail_kvaddr, 0, in qib_mmapf()
1081 static __poll_t qib_poll_urgent(struct qib_ctxtdata *rcd, in qib_poll_urgent() argument
1085 struct qib_devdata *dd = rcd->dd; in qib_poll_urgent()
1088 poll_wait(fp, &rcd->wait, pt); in qib_poll_urgent()
1091 if (rcd->urgent != rcd->urgent_poll) { in qib_poll_urgent()
1093 rcd->urgent_poll = rcd->urgent; in qib_poll_urgent()
1096 set_bit(QIB_CTXT_WAITING_URG, &rcd->flag); in qib_poll_urgent()
1103 static __poll_t qib_poll_next(struct qib_ctxtdata *rcd, in qib_poll_next() argument
1107 struct qib_devdata *dd = rcd->dd; in qib_poll_next()
1110 poll_wait(fp, &rcd->wait, pt); in qib_poll_next()
1113 if (dd->f_hdrqempty(rcd)) { in qib_poll_next()
1114 set_bit(QIB_CTXT_WAITING_RCV, &rcd->flag); in qib_poll_next()
1115 dd->f_rcvctrl(rcd->ppd, QIB_RCVCTRL_INTRAVAIL_ENB, rcd->ctxt); in qib_poll_next()
1126 struct qib_ctxtdata *rcd; in qib_poll() local
1129 rcd = ctxt_fp(fp); in qib_poll()
1130 if (!rcd) in qib_poll()
1132 else if (rcd->poll_type == QIB_POLL_TYPE_URGENT) in qib_poll()
1133 pollflag = qib_poll_urgent(rcd, fp, pt); in qib_poll()
1134 else if (rcd->poll_type == QIB_POLL_TYPE_ANYRCV) in qib_poll()
1135 pollflag = qib_poll_next(rcd, fp, pt); in qib_poll()
1216 struct qib_ctxtdata *rcd, in init_subctxts() argument
1246 rcd->subctxt_uregbase = vmalloc_user(PAGE_SIZE * num_subctxts); in init_subctxts()
1247 if (!rcd->subctxt_uregbase) { in init_subctxts()
1254 rcd->subctxt_rcvhdr_base = vmalloc_user(size); in init_subctxts()
1255 if (!rcd->subctxt_rcvhdr_base) { in init_subctxts()
1260 rcd->subctxt_rcvegrbuf = vmalloc_user(rcd->rcvegrbuf_chunks * in init_subctxts()
1261 rcd->rcvegrbuf_size * in init_subctxts()
1263 if (!rcd->subctxt_rcvegrbuf) { in init_subctxts()
1268 rcd->subctxt_cnt = uinfo->spu_subctxt_cnt; in init_subctxts()
1269 rcd->subctxt_id = uinfo->spu_subctxt_id; in init_subctxts()
1270 rcd->active_slaves = 1; in init_subctxts()
1271 rcd->redirect_seq_cnt = 1; in init_subctxts()
1272 set_bit(QIB_CTXT_MASTER_UNINIT, &rcd->flag); in init_subctxts()
1276 vfree(rcd->subctxt_rcvhdr_base); in init_subctxts()
1278 vfree(rcd->subctxt_uregbase); in init_subctxts()
1279 rcd->subctxt_uregbase = NULL; in init_subctxts()
1289 struct qib_ctxtdata *rcd; in setup_ctxt() local
1300 rcd = qib_create_ctxtdata(ppd, ctxt, numa_id); in setup_ctxt()
1306 if (rcd) in setup_ctxt()
1311 if (!rcd || !ptmp) { in setup_ctxt()
1317 rcd->userversion = uinfo->spu_userversion; in setup_ctxt()
1318 ret = init_subctxts(dd, rcd, uinfo); in setup_ctxt()
1321 rcd->tid_pg_list = ptmp; in setup_ctxt()
1322 rcd->pid = current->pid; in setup_ctxt()
1323 init_waitqueue_head(&dd->rcd[ctxt]->wait); in setup_ctxt()
1324 strlcpy(rcd->comm, current->comm, sizeof(rcd->comm)); in setup_ctxt()
1325 ctxt_fp(fp) = rcd; in setup_ctxt()
1335 dd->rcd[ctxt] = NULL; in setup_ctxt()
1336 kfree(rcd); in setup_ctxt()
1367 for (ctxt = dd->first_user_ctxt; ctxt < dd->cfgctxts && dd->rcd[ctxt]; in choose_port_ctxt()
1443 if (dd->rcd[ctxt]) in get_a_ctxt()
1490 struct qib_ctxtdata *rcd = dd->rcd[i]; in find_shared_ctxt() local
1493 if (!rcd || !rcd->cnt) in find_shared_ctxt()
1496 if (rcd->subctxt_id != uinfo->spu_subctxt_id) in find_shared_ctxt()
1499 if (rcd->subctxt_cnt != uinfo->spu_subctxt_cnt || in find_shared_ctxt()
1500 rcd->userversion != uinfo->spu_userversion || in find_shared_ctxt()
1501 rcd->cnt >= rcd->subctxt_cnt) { in find_shared_ctxt()
1505 ctxt_fp(fp) = rcd; in find_shared_ctxt()
1506 subctxt_fp(fp) = rcd->cnt++; in find_shared_ctxt()
1507 rcd->subpid[subctxt_fp(fp)] = current->pid; in find_shared_ctxt()
1509 rcd->active_slaves |= 1 << subctxt_fp(fp); in find_shared_ctxt()
1565 struct qib_ctxtdata *rcd = fd->rcd; in do_qib_user_sdma_queue_create() local
1566 struct qib_devdata *dd = rcd->dd; in do_qib_user_sdma_queue_create()
1572 rcd->ctxt, in do_qib_user_sdma_queue_create()
1653 struct qib_ctxtdata *rcd = ctxt_fp(fp); in qib_do_user_init() local
1659 ret = wait_event_interruptible(rcd->wait, in qib_do_user_init()
1660 !test_bit(QIB_CTXT_MASTER_UNINIT, &rcd->flag)); in qib_do_user_init()
1664 dd = rcd->dd; in qib_do_user_init()
1667 uctxt = rcd->ctxt - dd->first_user_ctxt; in qib_do_user_init()
1669 rcd->piocnt = dd->pbufsctxt + 1; in qib_do_user_init()
1670 rcd->pio_base = rcd->piocnt * uctxt; in qib_do_user_init()
1672 rcd->piocnt = dd->pbufsctxt; in qib_do_user_init()
1673 rcd->pio_base = rcd->piocnt * uctxt + in qib_do_user_init()
1683 if ((rcd->pio_base + rcd->piocnt) > dd->piobcnt2k) { in qib_do_user_init()
1684 if (rcd->pio_base >= dd->piobcnt2k) { in qib_do_user_init()
1687 dd->unit, rcd->ctxt); in qib_do_user_init()
1691 rcd->piocnt = dd->piobcnt2k - rcd->pio_base; in qib_do_user_init()
1693 rcd->ctxt, rcd->piocnt); in qib_do_user_init()
1696 rcd->piobufs = dd->pio2k_bufbase + rcd->pio_base * dd->palign; in qib_do_user_init()
1697 qib_chg_pioavailkernel(dd, rcd->pio_base, rcd->piocnt, in qib_do_user_init()
1698 TXCHK_CHG_TYPE_USER, rcd); in qib_do_user_init()
1717 ret = qib_create_rcvhdrq(dd, rcd); in qib_do_user_init()
1719 ret = qib_setup_eagerbufs(rcd); in qib_do_user_init()
1723 rcd->tidcursor = 0; /* start at beginning after open */ in qib_do_user_init()
1726 rcd->urgent = 0; in qib_do_user_init()
1727 rcd->urgent_poll = 0; in qib_do_user_init()
1740 if (rcd->rcvhdrtail_kvaddr) in qib_do_user_init()
1741 qib_clear_rcvhdrtail(rcd); in qib_do_user_init()
1743 dd->f_rcvctrl(rcd->ppd, QIB_RCVCTRL_CTXT_ENB | QIB_RCVCTRL_TIDFLOW_ENB, in qib_do_user_init()
1744 rcd->ctxt); in qib_do_user_init()
1747 if (rcd->subctxt_cnt) { in qib_do_user_init()
1748 clear_bit(QIB_CTXT_MASTER_UNINIT, &rcd->flag); in qib_do_user_init()
1749 wake_up(&rcd->wait); in qib_do_user_init()
1754 qib_chg_pioavailkernel(dd, rcd->pio_base, rcd->piocnt, in qib_do_user_init()
1755 TXCHK_CHG_TYPE_KERN, rcd); in qib_do_user_init()
1768 static void unlock_expected_tids(struct qib_ctxtdata *rcd) in unlock_expected_tids() argument
1770 struct qib_devdata *dd = rcd->dd; in unlock_expected_tids()
1771 int ctxt_tidbase = rcd->ctxt * dd->rcvtidcnt; in unlock_expected_tids()
1794 struct qib_ctxtdata *rcd; in qib_close() local
1803 rcd = fd->rcd; in qib_close()
1804 if (!rcd) { in qib_close()
1809 dd = rcd->dd; in qib_close()
1816 qib_user_sdma_queue_drain(rcd->ppd, fd->pq); in qib_close()
1823 if (--rcd->cnt) { in qib_close()
1829 rcd->active_slaves &= ~(1 << fd->subctxt); in qib_close()
1830 rcd->subpid[fd->subctxt] = 0; in qib_close()
1837 ctxt = rcd->ctxt; in qib_close()
1838 dd->rcd[ctxt] = NULL; in qib_close()
1839 rcd->pid = 0; in qib_close()
1842 if (rcd->rcvwait_to || rcd->piowait_to || in qib_close()
1843 rcd->rcvnowait || rcd->pionowait) { in qib_close()
1844 rcd->rcvwait_to = 0; in qib_close()
1845 rcd->piowait_to = 0; in qib_close()
1846 rcd->rcvnowait = 0; in qib_close()
1847 rcd->pionowait = 0; in qib_close()
1849 if (rcd->flag) in qib_close()
1850 rcd->flag = 0; in qib_close()
1854 dd->f_rcvctrl(rcd->ppd, QIB_RCVCTRL_CTXT_DIS | in qib_close()
1858 qib_clean_part_key(rcd, dd); in qib_close()
1859 qib_disarm_piobufs(dd, rcd->pio_base, rcd->piocnt); in qib_close()
1860 qib_chg_pioavailkernel(dd, rcd->pio_base, in qib_close()
1861 rcd->piocnt, TXCHK_CHG_TYPE_KERN, NULL); in qib_close()
1863 dd->f_clear_tids(dd, rcd); in qib_close()
1866 unlock_expected_tids(rcd); in qib_close()
1872 qib_free_ctxtdata(dd, rcd); /* after releasing the mutex */ in qib_close()
1884 struct qib_ctxtdata *rcd = ctxt_fp(fp); in qib_ctxt_info() local
1890 info.unit = rcd->dd->unit; in qib_ctxt_info()
1891 info.port = rcd->ppd->port; in qib_ctxt_info()
1892 info.ctxt = rcd->ctxt; in qib_ctxt_info()
1895 info.num_ctxts = rcd->dd->cfgctxts - rcd->dd->first_user_ctxt; in qib_ctxt_info()
1896 info.num_subctxts = rcd->subctxt_cnt; in qib_ctxt_info()
1942 static int disarm_req_delay(struct qib_ctxtdata *rcd) in disarm_req_delay() argument
1946 if (!usable(rcd->ppd)) { in disarm_req_delay()
1954 if (rcd->user_event_mask) { in disarm_req_delay()
1960 &rcd->user_event_mask[0]); in disarm_req_delay()
1961 for (i = 1; i < rcd->subctxt_cnt; i++) in disarm_req_delay()
1963 &rcd->user_event_mask[i]); in disarm_req_delay()
1965 for (i = 0; !usable(rcd->ppd) && i < 300; i++) in disarm_req_delay()
1979 struct qib_ctxtdata *rcd; in qib_set_uevent_bits() local
1987 rcd = ppd->dd->rcd[ctxt]; in qib_set_uevent_bits()
1988 if (!rcd) in qib_set_uevent_bits()
1990 if (rcd->user_event_mask) { in qib_set_uevent_bits()
1996 set_bit(evtbit, &rcd->user_event_mask[0]); in qib_set_uevent_bits()
1997 for (i = 1; i < rcd->subctxt_cnt; i++) in qib_set_uevent_bits()
1998 set_bit(evtbit, &rcd->user_event_mask[i]); in qib_set_uevent_bits()
2017 static int qib_user_event_ack(struct qib_ctxtdata *rcd, int subctxt, in qib_user_event_ack() argument
2026 (void)qib_disarm_piobufs_ifneeded(rcd); in qib_user_event_ack()
2027 ret = disarm_req_delay(rcd); in qib_user_event_ack()
2029 clear_bit(i, &rcd->user_event_mask[subctxt]); in qib_user_event_ack()
2038 struct qib_ctxtdata *rcd; in qib_write() local
2152 rcd = ctxt_fp(fp); in qib_write()
2153 if (!rcd && cmd.type != QIB_CMD_ASSIGN_CTXT) { in qib_write()
2160 if (rcd) { in qib_write()
2180 ret = qib_manage_rcvq(rcd, subctxt_fp(fp), cmd.cmd.recv_ctrl); in qib_write()
2189 ret = qib_tid_update(rcd, fp, &cmd.cmd.tid_info); in qib_write()
2193 ret = qib_tid_free(rcd, subctxt_fp(fp), &cmd.cmd.tid_info); in qib_write()
2197 ret = qib_set_part_key(rcd, cmd.cmd.part_key); in qib_write()
2201 (void)qib_disarm_piobufs_ifneeded(rcd); in qib_write()
2202 ret = disarm_req_delay(rcd); in qib_write()
2206 qib_force_pio_avail_update(rcd->dd); in qib_write()
2210 rcd->poll_type = cmd.cmd.poll_type; in qib_write()
2214 rcd->dd->f_set_armlaunch(rcd->dd, cmd.cmd.armlaunch_ctrl); in qib_write()
2224 ret = qib_sdma_get_complete(rcd->ppd, in qib_write()
2231 ret = qib_user_event_ack(rcd, subctxt_fp(fp), in qib_write()
2246 struct qib_ctxtdata *rcd = ctxt_fp(iocb->ki_filp); in qib_write_iter() local
2252 return qib_user_sdma_writev(rcd, pq, from->iov, from->nr_segs); in qib_write_iter()