diff options
author | Mitesh Ahuja <mitesh.ahuja@emulex.Com> | 2014-06-10 16:02:20 +0200 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2014-08-02 00:07:36 +0200 |
commit | f252b5dc36e26368c7161f32ef304c30cd2d1f6c (patch) | |
tree | cb36b32e27926862805f6841bd79f1de0bf11406 /drivers/infiniband/hw/ocrdma | |
parent | RDMA/ocrdma: Avoid reporting wrong completions in case of error CQEs (diff) | |
download | linux-f252b5dc36e26368c7161f32ef304c30cd2d1f6c.tar.xz linux-f252b5dc36e26368c7161f32ef304c30cd2d1f6c.zip |
RDMA/ocrdma: Allow only SEND opcode in case of UD QPs
Prevent posting opcodes other than send and send immediate on the UD QPs.
Signed-off-by: Mitesh Ahuja <mitesh.ahuja@emulex.Com>
Signed-off-by: Devesh Sharma <devesh.sharma@emulex.com>
Signed-off-by: Selvin Xavier <selvin.xavier@emulex.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'drivers/infiniband/hw/ocrdma')
-rw-r--r-- | drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c index 2b68235973d7..7f54d2478738 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c @@ -2055,6 +2055,13 @@ int ocrdma_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, } while (wr) { + if (qp->qp_type == IB_QPT_UD && + (wr->opcode != IB_WR_SEND && + wr->opcode != IB_WR_SEND_WITH_IMM)) { + *bad_wr = wr; + status = -EINVAL; + break; + } if (ocrdma_hwq_free_cnt(&qp->sq) == 0 || wr->num_sge > qp->sq.max_sges) { *bad_wr = wr; |