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",
157 * paragraph 2). For now, we assume that all supported RDMA in svc_rdma_create_xprt()
279 struct svcxprt_rdma *rdma = cma_id->context; in svc_rdma_cma_handler() local
280 struct svc_xprt *xprt = &rdma->sc_xprt; in svc_rdma_cma_handler()
284 clear_bit(RDMAXPRT_CONN_PENDING, &rdma->sc_flags); in svc_rdma_cma_handler()
301 * Create a listening RDMA service endpoint.
482 /* Construct RDMA-CM private message */ in svc_rdma_accept()
539 struct svcxprt_rdma *rdma = in svc_rdma_detach() local
542 rdma_disconnect(rdma->sc_cm_id); in svc_rdma_detach()
547 struct svcxprt_rdma *rdma = in __svc_rdma_free() local
551 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) in __svc_rdma_free()
552 ib_drain_qp(rdma->sc_qp); in __svc_rdma_free()
555 svc_rdma_flush_recv_queues(rdma); in __svc_rdma_free()
557 svc_rdma_destroy_rw_ctxts(rdma); in __svc_rdma_free()
558 svc_rdma_send_ctxts_destroy(rdma); in __svc_rdma_free()
559 svc_rdma_recv_ctxts_destroy(rdma); in __svc_rdma_free()
562 if (rdma->sc_qp && !IS_ERR(rdma->sc_qp)) in __svc_rdma_free()
563 ib_destroy_qp(rdma->sc_qp); in __svc_rdma_free()
565 if (rdma->sc_sq_cq && !IS_ERR(rdma->sc_sq_cq)) in __svc_rdma_free()
566 ib_free_cq(rdma->sc_sq_cq); in __svc_rdma_free()
568 if (rdma->sc_rq_cq && !IS_ERR(rdma->sc_rq_cq)) in __svc_rdma_free()
569 ib_free_cq(rdma->sc_rq_cq); in __svc_rdma_free()
571 if (rdma->sc_pd && !IS_ERR(rdma->sc_pd)) in __svc_rdma_free()
572 ib_dealloc_pd(rdma->sc_pd); in __svc_rdma_free()
575 rdma_destroy_id(rdma->sc_cm_id); in __svc_rdma_free()
577 kfree(rdma); in __svc_rdma_free()
582 struct svcxprt_rdma *rdma = in svc_rdma_free() local
585 INIT_WORK(&rdma->sc_work, __svc_rdma_free); in svc_rdma_free()
586 schedule_work(&rdma->sc_work); in svc_rdma_free()
591 struct svcxprt_rdma *rdma = in svc_rdma_has_wspace() local
598 if (waitqueue_active(&rdma->sc_send_wait)) in svc_rdma_has_wspace()