in efawin/verbs.c [1418:1436]
static int efa_post_send_validate(struct efa_qp *qp,
unsigned int wr_flags)
{
if (unlikely(qp->verbs_qp.qp.state != IBV_QPS_RTS &&
qp->verbs_qp.qp.state != IBV_QPS_SQD))
return EINVAL;
if (unlikely(!(wr_flags & IBV_SEND_SIGNALED) && !qp->sq_sig_all))
return EINVAL;
if (unlikely(wr_flags & ~(IBV_SEND_SIGNALED | IBV_SEND_INLINE)))
return EINVAL;
if (unlikely(qp->sq.wq.wqe_posted - qp->sq.wq.wqe_completed ==
qp->sq.wq.wqe_cnt))
return ENOMEM;
return 0;
}