Lines Matching refs:tx
931 struct qib_verbs_txreq *tx; in __get_txreq() local
943 tx = list_entry(l, struct qib_verbs_txreq, txreq.list); in __get_txreq()
954 tx = ERR_PTR(-EBUSY); in __get_txreq()
956 return tx; in __get_txreq()
962 struct qib_verbs_txreq *tx; in get_txreq() local
972 tx = list_entry(l, struct qib_verbs_txreq, txreq.list); in get_txreq()
976 tx = __get_txreq(dev, qp); in get_txreq()
978 return tx; in get_txreq()
981 void qib_put_txreq(struct qib_verbs_txreq *tx) in qib_put_txreq() argument
987 qp = tx->qp; in qib_put_txreq()
992 if (tx->mr) { in qib_put_txreq()
993 qib_put_mr(tx->mr); in qib_put_txreq()
994 tx->mr = NULL; in qib_put_txreq()
996 if (tx->txreq.flags & QIB_SDMA_TXREQ_F_FREEBUF) { in qib_put_txreq()
997 tx->txreq.flags &= ~QIB_SDMA_TXREQ_F_FREEBUF; in qib_put_txreq()
999 tx->txreq.addr, tx->hdr_dwords << 2, in qib_put_txreq()
1001 kfree(tx->align_buf); in qib_put_txreq()
1007 list_add(&tx->txreq.list, &dev->txreq_free); in qib_put_txreq()
1080 struct qib_verbs_txreq *tx = in sdma_complete() local
1082 struct qib_qp *qp = tx->qp; in sdma_complete()
1085 if (tx->wqe) in sdma_complete()
1086 qib_send_complete(qp, tx->wqe, IB_WC_SUCCESS); in sdma_complete()
1090 if (tx->txreq.flags & QIB_SDMA_TXREQ_F_FREEBUF) in sdma_complete()
1091 hdr = &tx->align_buf->hdr; in sdma_complete()
1095 hdr = &dev->pio_hdrs[tx->hdr_inx].hdr; in sdma_complete()
1109 qib_put_txreq(tx); in sdma_complete()
1143 struct qib_verbs_txreq *tx; in qib_verbs_send_dma() local
1149 tx = qp->s_tx; in qib_verbs_send_dma()
1150 if (tx) { in qib_verbs_send_dma()
1153 ret = qib_sdma_verbs_send(ppd, tx->ss, tx->dwords, tx); in qib_verbs_send_dma()
1157 tx = get_txreq(dev, qp); in qib_verbs_send_dma()
1158 if (IS_ERR(tx)) in qib_verbs_send_dma()
1163 tx->qp = qp; in qib_verbs_send_dma()
1165 tx->wqe = qp->s_wqe; in qib_verbs_send_dma()
1166 tx->mr = qp->s_rdma_mr; in qib_verbs_send_dma()
1169 tx->txreq.callback = sdma_complete; in qib_verbs_send_dma()
1171 tx->txreq.flags = QIB_SDMA_TXREQ_F_HEADTOHOST; in qib_verbs_send_dma()
1173 tx->txreq.flags = QIB_SDMA_TXREQ_F_INTREQ; in qib_verbs_send_dma()
1175 tx->txreq.flags |= QIB_SDMA_TXREQ_F_USELARGEBUF; in qib_verbs_send_dma()
1188 phdr = &dev->pio_hdrs[tx->hdr_inx]; in qib_verbs_send_dma()
1192 tx->txreq.flags |= QIB_SDMA_TXREQ_F_FREEDESC; in qib_verbs_send_dma()
1193 tx->txreq.sg_count = ndesc; in qib_verbs_send_dma()
1194 tx->txreq.addr = dev->pio_hdrs_phys + in qib_verbs_send_dma()
1195 tx->hdr_inx * sizeof(struct qib_pio_header); in qib_verbs_send_dma()
1196 tx->hdr_dwords = hdrwords + 2; /* add PBC length */ in qib_verbs_send_dma()
1197 ret = qib_sdma_verbs_send(ppd, ss, dwords, tx); in qib_verbs_send_dma()
1202 tx->hdr_dwords = plen + 1; in qib_verbs_send_dma()
1203 phdr = kmalloc(tx->hdr_dwords << 2, GFP_ATOMIC); in qib_verbs_send_dma()
1211 tx->txreq.addr = dma_map_single(&dd->pcidev->dev, phdr, in qib_verbs_send_dma()
1212 tx->hdr_dwords << 2, DMA_TO_DEVICE); in qib_verbs_send_dma()
1213 if (dma_mapping_error(&dd->pcidev->dev, tx->txreq.addr)) in qib_verbs_send_dma()
1215 tx->align_buf = phdr; in qib_verbs_send_dma()
1216 tx->txreq.flags |= QIB_SDMA_TXREQ_F_FREEBUF; in qib_verbs_send_dma()
1217 tx->txreq.sg_count = 1; in qib_verbs_send_dma()
1218 ret = qib_sdma_verbs_send(ppd, NULL, 0, tx); in qib_verbs_send_dma()
1224 qib_put_txreq(tx); in qib_verbs_send_dma()
1231 ret = PTR_ERR(tx); in qib_verbs_send_dma()
2133 struct qib_verbs_txreq *tx; in qib_register_ib_device() local
2135 tx = kzalloc(sizeof(*tx), GFP_KERNEL); in qib_register_ib_device()
2136 if (!tx) { in qib_register_ib_device()
2140 tx->hdr_inx = i; in qib_register_ib_device()
2141 list_add(&tx->txreq.list, &dev->txreq_free); in qib_register_ib_device()
2263 struct qib_verbs_txreq *tx; in qib_register_ib_device() local
2266 tx = list_entry(l, struct qib_verbs_txreq, txreq.list); in qib_register_ib_device()
2267 kfree(tx); in qib_register_ib_device()
2317 struct qib_verbs_txreq *tx; in qib_unregister_ib_device() local
2320 tx = list_entry(l, struct qib_verbs_txreq, txreq.list); in qib_unregister_ib_device()
2321 kfree(tx); in qib_unregister_ib_device()