Returning an errno is always better than just returning -1. (Assuming it's an 
appropriate error number...)

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Jason Gunthorpe
Sent: Tuesday, March 08, 2011 8:28 PM
To: Roland Dreier; [email protected]
Subject: [PATCH/libmlx4] Return ERRNO codes from ibv_post_send/recv instead of 
-1

The man pages for these functions document a positive return of errno not -1.

Signed-off-by: Jason Gunthorpe <[email protected]>
---
 src/qp.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)

Noticed this.. What do you think?

I did not check the other drivers.

diff --git a/src/qp.c b/src/qp.c
index d194ae3..ec138cd 100644
--- a/src/qp.c
+++ b/src/qp.c
@@ -40,6 +40,7 @@
 #include <netinet/in.h>
 #include <pthread.h>
 #include <string.h>
+#include <errno.h>

 #include "mlx4.h"
 #include "doorbell.h"
@@ -206,19 +207,19 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct 
ibv_send_wr *wr,

        for (nreq = 0; wr; ++nreq, wr = wr->next) {
                if (wq_overflow(&qp->sq, nreq, to_mcq(qp->ibv_qp.send_cq))) {
-                       ret = -1;
+                       ret = ENOMEM;
                        *bad_wr = wr;
                        goto out;
                }

                if (wr->num_sge > qp->sq.max_gs) {
-                       ret = -1;
+                       ret = ENOMEM;
                        *bad_wr = wr;
                        goto out;
                }

                if (wr->opcode >= sizeof mlx4_ib_opcode / sizeof 
mlx4_ib_opcode[0]) {
-                       ret = -1;
+                       ret = EINVAL;
                        *bad_wr = wr;
                        goto out;
                }
@@ -309,7 +310,7 @@ int mlx4_post_send(struct ibv_qp *ibqp, struct ibv_send_wr 
*wr,

                                if (inl > qp->max_inline_data) {
                                        inl = 0;
-                                       ret = -1;
+                                       ret = ENOMEM;
                                        *bad_wr = wr;
                                        goto out;
                                }
@@ -450,13 +451,13 @@ int mlx4_post_recv(struct ibv_qp *ibqp, struct 
ibv_recv_wr *wr,

        for (nreq = 0; wr; ++nreq, wr = wr->next) {
                if (wq_overflow(&qp->rq, nreq, to_mcq(qp->ibv_qp.recv_cq))) {
-                       ret = -1;
+                       ret = ENOMEM;
                        *bad_wr = wr;
                        goto out;
                }

                if (wr->num_sge > qp->rq.max_gs) {
-                       ret = -1;
+                       ret = ENOMEM;
                        *bad_wr = wr;
                        goto out;
                }
--
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


This message and any attached documents contain information from QLogic 
Corporation or its wholly-owned subsidiaries that may be confidential. If you 
are not the intended recipient, you may not read, copy, distribute, or use this 
information. If you have received this transmission in error, please notify the 
sender immediately by reply e-mail and then delete this message.

--
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

Reply via email to