Lines Matching refs:ctxt
80 * ctxt, the Send WR is posted, and sendto returns.
127 struct svc_rdma_send_ctxt *ctxt;
132 ctxt = kmalloc_node(struct_size(ctxt, sc_sges, rdma->sc_max_send_sges),
134 if (!ctxt)
144 svc_rdma_send_cid_init(rdma, &ctxt->sc_cid);
146 ctxt->sc_send_wr.next = NULL;
147 ctxt->sc_send_wr.wr_cqe = &ctxt->sc_cqe;
148 ctxt->sc_send_wr.sg_list = ctxt->sc_sges;
149 ctxt->sc_send_wr.send_flags = IB_SEND_SIGNALED;
150 ctxt->sc_cqe.done = svc_rdma_wc_send;
151 ctxt->sc_xprt_buf = buffer;
152 xdr_buf_init(&ctxt->sc_hdrbuf, ctxt->sc_xprt_buf,
154 ctxt->sc_sges[0].addr = addr;
157 ctxt->sc_sges[i].lkey = rdma->sc_pd->local_dma_lkey;
158 return ctxt;
163 kfree(ctxt);
175 struct svc_rdma_send_ctxt *ctxt;
179 ctxt = llist_entry(node, struct svc_rdma_send_ctxt, sc_node);
181 ctxt->sc_sges[0].addr,
184 kfree(ctxt->sc_xprt_buf);
185 kfree(ctxt);
198 struct svc_rdma_send_ctxt *ctxt;
205 ctxt = llist_entry(node, struct svc_rdma_send_ctxt, sc_node);
209 rpcrdma_set_xdrlen(&ctxt->sc_hdrbuf, 0);
210 xdr_init_encode(&ctxt->sc_stream, &ctxt->sc_hdrbuf,
211 ctxt->sc_xprt_buf, NULL);
213 ctxt->sc_send_wr.num_sge = 0;
214 ctxt->sc_cur_sge_no = 0;
215 ctxt->sc_page_count = 0;
216 return ctxt;
220 ctxt = svc_rdma_send_ctxt_alloc(rdma);
221 if (!ctxt)
229 * @ctxt: object to return to the free list
234 struct svc_rdma_send_ctxt *ctxt)
239 if (ctxt->sc_page_count)
240 release_pages(ctxt->sc_pages, ctxt->sc_page_count);
243 * remains mapped until @ctxt is destroyed.
245 for (i = 1; i < ctxt->sc_send_wr.num_sge; i++) {
247 ctxt->sc_sges[i].addr,
248 ctxt->sc_sges[i].length,
251 ctxt->sc_sges[i].addr,
252 ctxt->sc_sges[i].length);
255 llist_add(&ctxt->sc_node, &rdma->sc_send_ctxts);
284 struct svc_rdma_send_ctxt *ctxt =
292 trace_svcrdma_wc_send(wc, &ctxt->sc_cid);
293 svc_rdma_send_ctxt_put(rdma, ctxt);
298 trace_svcrdma_wc_send_err(wc, &ctxt->sc_cid);
300 trace_svcrdma_wc_send_flush(wc, &ctxt->sc_cid);
301 svc_rdma_send_ctxt_put(rdma, ctxt);
308 * @ctxt: send ctxt with a Send WR ready to post
313 int svc_rdma_send(struct svcxprt_rdma *rdma, struct svc_rdma_send_ctxt *ctxt)
315 struct ib_send_wr *wr = &ctxt->sc_send_wr;
340 trace_svcrdma_post_send(ctxt);
527 struct svc_rdma_send_ctxt *ctxt = args->md_ctxt;
531 ++ctxt->sc_cur_sge_no;
538 ctxt->sc_sges[ctxt->sc_cur_sge_no].addr = dma_addr;
539 ctxt->sc_sges[ctxt->sc_cur_sge_no].length = len;
540 ctxt->sc_send_wr.num_sge++;
808 * svc_rdma_sendto returns. Transfer pages under I/O to the ctxt
812 struct svc_rdma_send_ctxt *ctxt)
816 ctxt->sc_page_count += pages;
818 ctxt->sc_pages[i] = rqstp->rq_respages[i];