Lines Matching full:rdma

52 #include <rdma/ib_verbs.h>
53 #include <rdma/rdma_cm.h>
54 #include <rdma/rw.h>
94 .xcl_name = "rdma",
194 * paragraph 2). For now, we assume that all supported RDMA in svc_rdma_create_xprt()
330 struct svcxprt_rdma *rdma = cma_id->context; in svc_rdma_cma_handler() local
331 struct svc_xprt *xprt = &rdma->sc_xprt; in svc_rdma_cma_handler()
335 clear_bit(RDMAXPRT_CONN_PENDING, &rdma->sc_flags); in svc_rdma_cma_handler()
351 * Create a listening RDMA service endpoint.
388 struct svcxprt_rdma *rdma = container_of(rn, struct svcxprt_rdma, in svc_rdma_xprt_done() local
390 struct rdma_cm_id *id = rdma->sc_cm_id; in svc_rdma_xprt_done()
393 svc_xprt_close(&rdma->sc_xprt); in svc_rdma_xprt_done()
528 /* Construct RDMA-CM private message */ in svc_rdma_accept()
585 struct svcxprt_rdma *rdma = in svc_rdma_detach() local
588 rdma_disconnect(rdma->sc_cm_id); in svc_rdma_detach()
593 struct svcxprt_rdma *rdma = in __svc_rdma_free() local
595 struct ib_device *device = rdma->sc_cm_id->device; in __svc_rdma_free()
598 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) in __svc_rdma_free()
599 ib_drain_qp(rdma->sc_qp); in __svc_rdma_free()
602 svc_rdma_flush_recv_queues(rdma); in __svc_rdma_free()
604 svc_rdma_destroy_rw_ctxts(rdma); in __svc_rdma_free()
605 svc_rdma_send_ctxts_destroy(rdma); in __svc_rdma_free()
606 svc_rdma_recv_ctxts_destroy(rdma); in __svc_rdma_free()
609 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) in __svc_rdma_free()
610 ib_destroy_qp(rdma->sc_qp); in __svc_rdma_free()
612 if (rdma->sc_sq_cq && !IS_ERR(rdma->sc_sq_cq)) in __svc_rdma_free()
613 ib_free_cq(rdma->sc_sq_cq); in __svc_rdma_free()
615 if (rdma->sc_rq_cq && !IS_ERR(rdma->sc_rq_cq)) in __svc_rdma_free()
616 ib_free_cq(rdma->sc_rq_cq); in __svc_rdma_free()
618 if (rdma->sc_pd && !IS_ERR(rdma->sc_pd)) in __svc_rdma_free()
619 ib_dealloc_pd(rdma->sc_pd); in __svc_rdma_free()
622 rdma_destroy_id(rdma->sc_cm_id); in __svc_rdma_free()
624 rpcrdma_rn_unregister(device, &rdma->sc_rn); in __svc_rdma_free()
625 kfree(rdma); in __svc_rdma_free()
630 struct svcxprt_rdma *rdma = in svc_rdma_free() local
633 INIT_WORK(&rdma->sc_work, __svc_rdma_free); in svc_rdma_free()
634 schedule_work(&rdma->sc_work); in svc_rdma_free()
639 struct svcxprt_rdma *rdma = in svc_rdma_has_wspace() local
646 if (waitqueue_active(&rdma->sc_send_wait)) in svc_rdma_has_wspace()