IB/ipath: Normalize error return codes for posting work requests
authorRalph Campbell <ralph.campbell@qlogic.com>
Wed, 14 Nov 2007 21:34:14 +0000 (13:34 -0800)
committerRoland Dreier <rolandd@cisco.com>
Tue, 20 Nov 2007 19:05:42 +0000 (11:05 -0800)
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>
drivers/infiniband/hw/ipath/ipath_srq.c
drivers/infiniband/hw/ipath/ipath_verbs.c

index 434da6270f658797cd89aeb425538de659116237..2fef36f4b675a8d0022bb1819bc4d560d977a0e2 100644 (file)
@@ -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) {
                        *bad_wr = wr;
-                       ret = -ENOMEM;
+                       ret = -EINVAL;
                        goto bail;
                }
 
index 74f77e7c2c1bb6ffc5632b2d446a35bfca3e803b..c4c998446c7b421976b57087ffa63e4f77739f6b 100644 (file)
@@ -302,8 +302,10 @@ static int ipath_post_one_send(struct ipath_qp *qp, struct ib_send_wr *wr)
        next = qp->s_head + 1;
        if (next >= qp->s_size)
                next = 0;
-       if (next == qp->s_last)
-               goto bail_inval;
+       if (next == qp->s_last) {
+               ret = -ENOMEM;
+               goto bail;
+       }
 
        wqe = get_swqe_ptr(qp, qp->s_head);
        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) {
                        *bad_wr = wr;
-                       ret = -ENOMEM;
+                       ret = -EINVAL;
                        goto bail;
                }