|
@@ -271,7 +271,7 @@ int mthca_alloc_srq(struct mthca_dev *dev, struct mthca_pd *pd,
|
|
|
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;
|
|
@@ -386,7 +386,7 @@ int mthca_query_srq(struct ib_srq *ibsrq, struct ib_srq_attr *srq_attr)
|
|
|
} 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:
|