As per IB compilance it is not allowed to post RDMA operations on a UD QP. This patch is adding a compilance check and if any violation is detected -EINVAL is returned.
Signed-off-by: Devesh Sharma <[email protected]> Signed-off-by: Mitesh Ahuja <[email protected]> --- src/ocrdma_verbs.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/ocrdma_verbs.c b/src/ocrdma_verbs.c index 0f138cf..a5b7252 100644 --- a/src/ocrdma_verbs.c +++ b/src/ocrdma_verbs.c @@ -1395,6 +1395,14 @@ int ocrdma_post_send(struct ibv_qp *ib_qp, struct ibv_send_wr *wr, } while (wr) { + + if (qp->qp_type == IBV_QPT_UD && (wr->opcode != IBV_WR_SEND && + wr->opcode != IBV_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; -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
