From 58a5efca7411dc52b9b5b8d1fb5ab503a5dbc889 Mon Sep 17 00:00:00 2001 From: Roland Dreier Date: Thu, 6 Oct 2005 13:25:16 -0700 Subject: [PATCH] --- yaml --- r: 10703 b: refs/heads/master c: e23d6d2b090658007732770720a44375cba23200 h: refs/heads/master i: 10701: a27059a01e867f343bf6c391e9e7c6da18786b51 10699: d298c3b08cd3507ba322a7c3d1993f878a4ed080 10695: 82af45b45f2b3481868b15eef8ffd41b01633f5c 10687: bd9089edc40b9e2b26709bad6fca4448ebd98411 v: v3 --- [refs] | 2 +- trunk/drivers/infiniband/hw/mthca/mthca_srq.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a79fff432ffd..529ea248e8e3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 90f104da22bbf2e2b8a2136c12fb4e013fccf504 +refs/heads/master: e23d6d2b090658007732770720a44375cba23200 diff --git a/trunk/drivers/infiniband/hw/mthca/mthca_srq.c b/trunk/drivers/infiniband/hw/mthca/mthca_srq.c index 13d2290261d9..e464321a7aa7 100644 --- a/trunk/drivers/infiniband/hw/mthca/mthca_srq.c +++ b/trunk/drivers/infiniband/hw/mthca/mthca_srq.c @@ -438,6 +438,14 @@ int mthca_tavor_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr, wqe = get_wqe(srq, ind); next_ind = *wqe_to_link(wqe); + + if (next_ind < 0) { + mthca_err(dev, "SRQ %06x full\n", srq->srqn); + err = -ENOMEM; + *bad_wr = wr; + break; + } + prev_wqe = srq->last; srq->last = wqe; @@ -529,6 +537,13 @@ int mthca_arbel_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr, wqe = get_wqe(srq, ind); next_ind = *wqe_to_link(wqe); + if (next_ind < 0) { + mthca_err(dev, "SRQ %06x full\n", srq->srqn); + err = -ENOMEM; + *bad_wr = wr; + break; + } + ((struct mthca_next_seg *) wqe)->nda_op = cpu_to_be32((next_ind << srq->wqe_shift) | 1); ((struct mthca_next_seg *) wqe)->ee_nds = 0;