MemFree devices need to reserve one shared receive queue (SRQ) work
request for internal use, so the capacity returned from the create_srq
and query_srq methods should be srq->max - 1.
Signed-off-by: Dotan Barak <dotanb@mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
        srq->first_free = 0;
        srq->last_free  = srq->max - 1;
 
-       attr->max_wr    = srq->max;
+       attr->max_wr    = (mthca_is_memfree(dev)) ? srq->max - 1 : srq->max;
        attr->max_sge   = srq->max_gs;
 
        return 0;
        } else
                srq_attr->srq_limit = 0;
 
-       srq_attr->max_wr  = srq->max;
+       srq_attr->max_wr  = (mthca_is_memfree(dev)) ? srq->max - 1 : srq->max;
        srq_attr->max_sge = srq->max_gs;
 
 out: