summaryrefslogtreecommitdiff
path: root/drivers/infiniband/sw/rdmavt/qp.c
diff options
context:
space:
mode:
authorIra Weiny <ira.weiny@intel.com>2016-02-03 22:14:45 (GMT)
committerDoug Ledford <dledford@redhat.com>2016-03-11 01:37:31 (GMT)
commit60c30f572595e46c819503b5a8c3a8e2f922de7a (patch)
tree8f30efa7fa7c47b8c67174a61c4c37d3d3abb30e /drivers/infiniband/sw/rdmavt/qp.c
parentb8f881b913f34f712185b2ff7a41645dcad9a868 (diff)
downloadlinux-60c30f572595e46c819503b5a8c3a8e2f922de7a.tar.xz
IB/rdmavt: Add hardware driver send work request check
Some hardware drivers requires additional checks on send WRs. Create an optional call back to allow hardware drivers to reject a send WR. Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com> Signed-off-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband/sw/rdmavt/qp.c')
-rw-r--r--drivers/infiniband/sw/rdmavt/qp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/infiniband/sw/rdmavt/qp.c b/drivers/infiniband/sw/rdmavt/qp.c
index 4711e14..e9e3138 100644
--- a/drivers/infiniband/sw/rdmavt/qp.c
+++ b/drivers/infiniband/sw/rdmavt/qp.c
@@ -1394,6 +1394,10 @@ static int rvt_post_one_wr(struct rvt_qp *qp, struct ib_send_wr *wr)
if (next == qp->s_last)
return -ENOMEM;
+ if (rdi->driver_f.check_send_wr &&
+ rdi->driver_f.check_send_wr(qp, wr))
+ return -EINVAL;
+
rkt = &rdi->lkey_table;
pd = ibpd_to_rvtpd(qp->ibqp.pd);
wqe = rvt_get_swqe_ptr(qp, qp->s_head);