From: Roland Dreier Date: Mon, 19 Sep 2005 16:17:56 +0000 (-0700) Subject: [PATCH] IB/mthca: Don't try to set srq->last for userspace SRQs X-Git-Tag: v2.6.14-rc3~150^2~3 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=sidebyside;h=6577ae51cf52f5fb0e4a85e673dd7bf2d0074e3e;hp=3853194c2e174cee4da093c67bd54cbf9a38559a;p=linux-2.6 [PATCH] IB/mthca: Don't try to set srq->last for userspace SRQs Userspace SRQs don't have a buffer allocated for them in the kernel, so it doesn't make sense to set srq->last during initialization. In fact, this can crash trying to follow a nonexistent buffer pointer. Signed-off-by: Roland Dreier --- diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c index 45dedd2787..18998d48c5 100644 --- a/drivers/infiniband/hw/mthca/mthca_srq.c +++ b/drivers/infiniband/hw/mthca/mthca_srq.c @@ -172,6 +172,8 @@ static int mthca_alloc_srq_buf(struct mthca_dev *dev, struct mthca_pd *pd, scatter->lkey = cpu_to_be32(MTHCA_INVAL_LKEY); } + srq->last = get_wqe(srq, srq->max - 1); + return 0; } @@ -263,7 +265,6 @@ int mthca_alloc_srq(struct mthca_dev *dev, struct mthca_pd *pd, srq->first_free = 0; srq->last_free = srq->max - 1; - srq->last = get_wqe(srq, srq->max - 1); return 0;