Lines Matching full:rdma

52 #include <rdma/ib_verbs.h>
53 #include <rdma/rdma_cm.h>
54 #include <rdma/rw.h>
92 .xcl_name = "rdma",
150 * paragraph 2). For now, we assume that all supported RDMA in svc_rdma_create_xprt()
272 struct svcxprt_rdma *rdma = cma_id->context; in svc_rdma_cma_handler() local
273 struct svc_xprt *xprt = &rdma->sc_xprt; in svc_rdma_cma_handler()
277 clear_bit(RDMAXPRT_CONN_PENDING, &rdma->sc_flags); in svc_rdma_cma_handler()
294 * Create a listening RDMA service endpoint.
479 /* Construct RDMA-CM private message */ in svc_rdma_accept()
536 struct svcxprt_rdma *rdma = in svc_rdma_detach() local
539 rdma_disconnect(rdma->sc_cm_id); in svc_rdma_detach()
544 struct svcxprt_rdma *rdma = in __svc_rdma_free() local
548 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) in __svc_rdma_free()
549 ib_drain_qp(rdma->sc_qp); in __svc_rdma_free()
551 svc_rdma_flush_recv_queues(rdma); in __svc_rdma_free()
553 svc_rdma_destroy_rw_ctxts(rdma); in __svc_rdma_free()
554 svc_rdma_send_ctxts_destroy(rdma); in __svc_rdma_free()
555 svc_rdma_recv_ctxts_destroy(rdma); in __svc_rdma_free()
558 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) in __svc_rdma_free()
559 ib_destroy_qp(rdma->sc_qp); in __svc_rdma_free()
561 if (rdma->sc_sq_cq && !IS_ERR(rdma->sc_sq_cq)) in __svc_rdma_free()
562 ib_free_cq(rdma->sc_sq_cq); in __svc_rdma_free()
564 if (rdma->sc_rq_cq && !IS_ERR(rdma->sc_rq_cq)) in __svc_rdma_free()
565 ib_free_cq(rdma->sc_rq_cq); in __svc_rdma_free()
567 if (rdma->sc_pd && !IS_ERR(rdma->sc_pd)) in __svc_rdma_free()
568 ib_dealloc_pd(rdma->sc_pd); in __svc_rdma_free()
571 rdma_destroy_id(rdma->sc_cm_id); in __svc_rdma_free()
573 kfree(rdma); in __svc_rdma_free()
578 struct svcxprt_rdma *rdma = in svc_rdma_free() local
581 INIT_WORK(&rdma->sc_work, __svc_rdma_free); in svc_rdma_free()
582 schedule_work(&rdma->sc_work); in svc_rdma_free()
587 struct svcxprt_rdma *rdma = in svc_rdma_has_wspace() local
594 if (waitqueue_active(&rdma->sc_send_wait)) in svc_rdma_has_wspace()