From: Mitesh Ahuja Date: Tue, 10 Jun 2014 14:02:20 +0000 (+0530) Subject: RDMA/ocrdma: Allow only SEND opcode in case of UD QPs X-Git-Tag: v3.17-rc1~19^2^10~10 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=f252b5dc36e26368c7161f32ef304c30cd2d1f6c;p=~emulex%2Finfiniband.git 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 Signed-off-by: Devesh Sharma Signed-off-by: Selvin Xavier Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c index 2b68235973d..7f54d247873 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;