summaryrefslogtreecommitdiff
path: root/include/rdma/rdma_vt.h
diff options
context:
space:
mode:
authorDennis Dalessandro <dennis.dalessandro@intel.com>2016-01-22 13:00:22 -0800
committerDoug Ledford <dledford@redhat.com>2016-03-10 20:37:24 -0500
commitbfbac097b6e8023e10fdadab2527d0a1a3160d7e (patch)
tree15dda8d2f8d2a5806ce577cfd97207a776082977 /include/rdma/rdma_vt.h
parent6f6387ae75c1499b315ddcd3c74402d44423e1cc (diff)
downloadlwn-bfbac097b6e8023e10fdadab2527d0a1a3160d7e.tar.gz
lwn-bfbac097b6e8023e10fdadab2527d0a1a3160d7e.zip
IB/rdmavt: Add post send to rdmavt
Add in a post_send and post_one_send to rdmavt. The ULP will provide a WQE to rdmavt which will then walk and queue each element. Rdmavt will then queue the work to be done in the driver or kick the driver's progress routine. There needs to be a follow on patch which adds in another lock for the head of the queue so that it can be added to and read from in parallel. This will touch protocol handlers and require other changes in the drivers. This will be done separately. Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/rdma/rdma_vt.h')
-rw-r--r--include/rdma/rdma_vt.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h
index 79080e3b09f8..36e4fb4c0df3 100644
--- a/include/rdma/rdma_vt.h
+++ b/include/rdma/rdma_vt.h
@@ -231,6 +231,8 @@ struct rvt_driver_provided {
gfp_t gfp);
void (*qp_priv_free)(struct rvt_dev_info *rdi, struct rvt_qp *qp);
void (*notify_qp_reset)(struct rvt_qp *qp);
+ void (*schedule_send)(struct rvt_qp *qp);
+ void (*do_send)(struct rvt_qp *qp);
/*--------------------*/
/* Optional functions */
@@ -312,6 +314,11 @@ static inline struct rvt_srq *ibsrq_to_rvtsrq(struct ib_srq *ibsrq)
return container_of(ibsrq, struct rvt_srq, ibsrq);
}
+static inline struct rvt_qp *ibqp_to_rvtqp(struct ib_qp *ibqp)
+{
+ return container_of(ibqp, struct rvt_qp, ibqp);
+}
+
static inline unsigned rvt_get_npkeys(struct rvt_dev_info *rdi)
{
/*