diff options
author | Mike Marciniszyn <mike.marciniszyn@intel.com> | 2016-09-06 14:34:21 +0300 |
---|---|---|
committer | Doug Ledford <dledford@redhat.com> | 2016-09-16 21:35:27 +0300 |
commit | 4107b8a029995e4a2c928b395a12ebc67d8e3689 (patch) | |
tree | 9ad234567e7b1824c5446e0e8b7bcd9d64ebcb22 /include/rdma/rdmavt_qp.h | |
parent | e4618d40eb3dc1a6d1f55f7150ea25bb23ab410a (diff) | |
download | linux-4107b8a029995e4a2c928b395a12ebc67d8e3689.tar.xz |
IB/rdmavt: Add functions to get and release QP references
This centralizes the function and improves code readability.
Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/rdma/rdmavt_qp.h')
-rw-r--r-- | include/rdma/rdmavt_qp.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/rdma/rdmavt_qp.h b/include/rdma/rdmavt_qp.h index bd34d0b56bf7..2c5183ef0243 100644 --- a/include/rdma/rdmavt_qp.h +++ b/include/rdma/rdmavt_qp.h @@ -466,6 +466,25 @@ static inline struct rvt_rwqe *rvt_get_rwqe_ptr(struct rvt_rq *rq, unsigned n) } /** + * rvt_get_qp - get a QP reference + * @qp - the QP to hold + */ +static inline void rvt_get_qp(struct rvt_qp *qp) +{ + atomic_inc(&qp->refcount); +} + +/** + * rvt_put_qp - release a QP reference + * @qp - the QP to release + */ +static inline void rvt_put_qp(struct rvt_qp *qp) +{ + if (qp && atomic_dec_and_test(&qp->refcount)) + wake_up(&qp->wait); +} + +/** * rvt_qp_wqe_reserve - reserve operation * @qp - the rvt qp * @wqe - the send wqe |