forked from luck/tmp_suning_uos_patched
IB/ipath: Normalize error return codes for posting work requests
The error codes for ib_post_send(), ib_post_recv(), and ib_post_srq_recv() were inconsistent. Use EINVAL for too many SGEs and ENOMEM for too many WRs. Signed-off-by: Ralph Campbell <ralph.campbell@qlogic.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
14de986a0b
commit
4187b915a0
@ -59,7 +59,7 @@ int ipath_post_srq_receive(struct ib_srq *ibsrq, struct ib_recv_wr *wr,
|
|||||||
|
|
||||||
if ((unsigned) wr->num_sge > srq->rq.max_sge) {
|
if ((unsigned) wr->num_sge > srq->rq.max_sge) {
|
||||||
*bad_wr = wr;
|
*bad_wr = wr;
|
||||||
ret = -ENOMEM;
|
ret = -EINVAL;
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -302,8 +302,10 @@ static int ipath_post_one_send(struct ipath_qp *qp, struct ib_send_wr *wr)
|
|||||||
next = qp->s_head + 1;
|
next = qp->s_head + 1;
|
||||||
if (next >= qp->s_size)
|
if (next >= qp->s_size)
|
||||||
next = 0;
|
next = 0;
|
||||||
if (next == qp->s_last)
|
if (next == qp->s_last) {
|
||||||
goto bail_inval;
|
ret = -ENOMEM;
|
||||||
|
goto bail;
|
||||||
|
}
|
||||||
|
|
||||||
wqe = get_swqe_ptr(qp, qp->s_head);
|
wqe = get_swqe_ptr(qp, qp->s_head);
|
||||||
wqe->wr = *wr;
|
wqe->wr = *wr;
|
||||||
@ -404,7 +406,7 @@ static int ipath_post_receive(struct ib_qp *ibqp, struct ib_recv_wr *wr,
|
|||||||
|
|
||||||
if ((unsigned) wr->num_sge > qp->r_rq.max_sge) {
|
if ((unsigned) wr->num_sge > qp->r_rq.max_sge) {
|
||||||
*bad_wr = wr;
|
*bad_wr = wr;
|
||||||
ret = -ENOMEM;
|
ret = -EINVAL;
|
||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user