Lines Matching refs:ctxt
129 struct svc_rdma_send_ctxt *ctxt; in svc_rdma_send_ctxt_alloc() local
135 size = sizeof(*ctxt); in svc_rdma_send_ctxt_alloc()
137 ctxt = kmalloc(size, GFP_KERNEL); in svc_rdma_send_ctxt_alloc()
138 if (!ctxt) in svc_rdma_send_ctxt_alloc()
148 ctxt->sc_send_wr.next = NULL; in svc_rdma_send_ctxt_alloc()
149 ctxt->sc_send_wr.wr_cqe = &ctxt->sc_cqe; in svc_rdma_send_ctxt_alloc()
150 ctxt->sc_send_wr.sg_list = ctxt->sc_sges; in svc_rdma_send_ctxt_alloc()
151 ctxt->sc_send_wr.send_flags = IB_SEND_SIGNALED; in svc_rdma_send_ctxt_alloc()
152 ctxt->sc_cqe.done = svc_rdma_wc_send; in svc_rdma_send_ctxt_alloc()
153 ctxt->sc_xprt_buf = buffer; in svc_rdma_send_ctxt_alloc()
154 ctxt->sc_sges[0].addr = addr; in svc_rdma_send_ctxt_alloc()
157 ctxt->sc_sges[i].lkey = rdma->sc_pd->local_dma_lkey; in svc_rdma_send_ctxt_alloc()
158 return ctxt; in svc_rdma_send_ctxt_alloc()
163 kfree(ctxt); in svc_rdma_send_ctxt_alloc()
175 struct svc_rdma_send_ctxt *ctxt; in svc_rdma_send_ctxts_destroy() local
177 while ((ctxt = svc_rdma_next_send_ctxt(&rdma->sc_send_ctxts))) { in svc_rdma_send_ctxts_destroy()
178 list_del(&ctxt->sc_list); in svc_rdma_send_ctxts_destroy()
180 ctxt->sc_sges[0].addr, in svc_rdma_send_ctxts_destroy()
183 kfree(ctxt->sc_xprt_buf); in svc_rdma_send_ctxts_destroy()
184 kfree(ctxt); in svc_rdma_send_ctxts_destroy()
197 struct svc_rdma_send_ctxt *ctxt; in svc_rdma_send_ctxt_get() local
200 ctxt = svc_rdma_next_send_ctxt(&rdma->sc_send_ctxts); in svc_rdma_send_ctxt_get()
201 if (!ctxt) in svc_rdma_send_ctxt_get()
203 list_del(&ctxt->sc_list); in svc_rdma_send_ctxt_get()
207 ctxt->sc_send_wr.num_sge = 0; in svc_rdma_send_ctxt_get()
208 ctxt->sc_cur_sge_no = 0; in svc_rdma_send_ctxt_get()
209 ctxt->sc_page_count = 0; in svc_rdma_send_ctxt_get()
210 return ctxt; in svc_rdma_send_ctxt_get()
214 ctxt = svc_rdma_send_ctxt_alloc(rdma); in svc_rdma_send_ctxt_get()
215 if (!ctxt) in svc_rdma_send_ctxt_get()
228 struct svc_rdma_send_ctxt *ctxt) in svc_rdma_send_ctxt_put() argument
236 for (i = 1; i < ctxt->sc_send_wr.num_sge; i++) in svc_rdma_send_ctxt_put()
238 ctxt->sc_sges[i].addr, in svc_rdma_send_ctxt_put()
239 ctxt->sc_sges[i].length, in svc_rdma_send_ctxt_put()
242 for (i = 0; i < ctxt->sc_page_count; ++i) in svc_rdma_send_ctxt_put()
243 put_page(ctxt->sc_pages[i]); in svc_rdma_send_ctxt_put()
246 list_add(&ctxt->sc_list, &rdma->sc_send_ctxts); in svc_rdma_send_ctxt_put()
262 struct svc_rdma_send_ctxt *ctxt; in svc_rdma_wc_send() local
269 ctxt = container_of(cqe, struct svc_rdma_send_ctxt, sc_cqe); in svc_rdma_wc_send()
270 svc_rdma_send_ctxt_put(rdma, ctxt); in svc_rdma_wc_send()
484 struct svc_rdma_send_ctxt *ctxt, in svc_rdma_dma_map_page() argument
496 ctxt->sc_sges[ctxt->sc_cur_sge_no].addr = dma_addr; in svc_rdma_dma_map_page()
497 ctxt->sc_sges[ctxt->sc_cur_sge_no].length = len; in svc_rdma_dma_map_page()
498 ctxt->sc_send_wr.num_sge++; in svc_rdma_dma_map_page()
510 struct svc_rdma_send_ctxt *ctxt, in svc_rdma_dma_map_buf() argument
514 return svc_rdma_dma_map_page(rdma, ctxt, virt_to_page(base), in svc_rdma_dma_map_buf()
526 struct svc_rdma_send_ctxt *ctxt, in svc_rdma_sync_reply_hdr() argument
529 ctxt->sc_sges[0].length = len; in svc_rdma_sync_reply_hdr()
530 ctxt->sc_send_wr.num_sge++; in svc_rdma_sync_reply_hdr()
532 ctxt->sc_sges[0].addr, len, in svc_rdma_sync_reply_hdr()
577 struct svc_rdma_send_ctxt *ctxt, in svc_rdma_pull_up_reply_msg() argument
583 dst = ctxt->sc_xprt_buf; in svc_rdma_pull_up_reply_msg()
584 dst += ctxt->sc_sges[0].length; in svc_rdma_pull_up_reply_msg()
620 ctxt->sc_sges[0].length += xdr->len; in svc_rdma_pull_up_reply_msg()
622 ctxt->sc_sges[0].addr, in svc_rdma_pull_up_reply_msg()
623 ctxt->sc_sges[0].length, in svc_rdma_pull_up_reply_msg()
641 struct svc_rdma_send_ctxt *ctxt, in svc_rdma_map_reply_msg() argument
652 return svc_rdma_pull_up_reply_msg(rdma, ctxt, xdr, wr_lst); in svc_rdma_map_reply_msg()
654 ++ctxt->sc_cur_sge_no; in svc_rdma_map_reply_msg()
655 ret = svc_rdma_dma_map_buf(rdma, ctxt, in svc_rdma_map_reply_msg()
685 ++ctxt->sc_cur_sge_no; in svc_rdma_map_reply_msg()
686 ret = svc_rdma_dma_map_page(rdma, ctxt, *ppages++, in svc_rdma_map_reply_msg()
699 ++ctxt->sc_cur_sge_no; in svc_rdma_map_reply_msg()
700 ret = svc_rdma_dma_map_buf(rdma, ctxt, base, len); in svc_rdma_map_reply_msg()
713 struct svc_rdma_send_ctxt *ctxt) in svc_rdma_save_io_pages() argument
717 ctxt->sc_page_count += pages; in svc_rdma_save_io_pages()
719 ctxt->sc_pages[i] = rqstp->rq_respages[i]; in svc_rdma_save_io_pages()
781 struct svc_rdma_send_ctxt *ctxt, in svc_rdma_send_error_msg() argument
787 p = ctxt->sc_xprt_buf; in svc_rdma_send_error_msg()
792 svc_rdma_sync_reply_hdr(rdma, ctxt, RPCRDMA_HDRLEN_ERR); in svc_rdma_send_error_msg()
794 svc_rdma_save_io_pages(rqstp, ctxt); in svc_rdma_send_error_msg()
796 ctxt->sc_send_wr.opcode = IB_WR_SEND; in svc_rdma_send_error_msg()
797 ret = svc_rdma_send(rdma, &ctxt->sc_send_wr); in svc_rdma_send_error_msg()
799 svc_rdma_send_ctxt_put(rdma, ctxt); in svc_rdma_send_error_msg()