Need to adjust minimum qp capability values prior to size and max resource
calculations.

Correct the rq values afterwards (as before) if have an srq.

Signed-off-by: Jack Morgenstein <[EMAIL PROTECTED]>

Index: new_connectx_user/src/userspace/libmlx4/src/verbs.c
===================================================================
--- new_connectx_user.orig/src/userspace/libmlx4/src/verbs.c    2007-06-18 
09:33:04.000000000 +0300
+++ new_connectx_user/src/userspace/libmlx4/src/verbs.c 2007-06-19 
09:47:10.000000000 +0300
@@ -355,6 +355,12 @@ struct ibv_qp *mlx4_create_qp(struct ibv
        if (!qp)
                return NULL;
 
+       /* adjust minimum cap values */
+       attr->cap.max_recv_wr = attr->cap.max_recv_wr ? attr->cap.max_recv_wr : 
1;
+       attr->cap.max_recv_sge = attr->cap.max_recv_sge ? 
attr->cap.max_recv_sge : 1;
+       attr->cap.max_send_wr = attr->cap.max_send_wr ? attr->cap.max_send_wr : 
1;
+       attr->cap.max_send_sge = attr->cap.max_send_sge ? 
attr->cap.max_send_sge : 1;
+
        mlx4_calc_sq_wqe_size(&attr->cap, attr->qp_type, qp);
 
        /*
@@ -366,9 +372,7 @@ struct ibv_qp *mlx4_create_qp(struct ibv
        qp->rq.wqe_cnt = align_queue_size(attr->cap.max_recv_wr);
 
        if (attr->srq)
-               attr->cap.max_recv_wr = qp->rq.wqe_cnt = 0;
-       else if (attr->cap.max_recv_sge < 1)
-               attr->cap.max_recv_sge = 1;
+               attr->cap.max_recv_wr = attr->cap.max_recv_sge = qp->rq.wqe_cnt 
= 0;
 
        if (mlx4_alloc_qp_buf(pd, &attr->cap, attr->qp_type, qp))
                goto err;
_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to