aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/infiniband/hw
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2005-09-19 12:17:56 -0400
committerRoland Dreier <rolandd@cisco.com>2005-09-19 12:17:56 -0400
commit6577ae51cf52f5fb0e4a85e673dd7bf2d0074e3e (patch)
tree3c3be701f7954d52f850c116903deb2698bb8038 /drivers/infiniband/hw
parent3853194c2e174cee4da093c67bd54cbf9a38559a (diff)
[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 <rolandd@cisco.com>
Diffstat (limited to 'drivers/infiniband/hw')
-rw-r--r--drivers/infiniband/hw/mthca/mthca_srq.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_srq.c b/drivers/infiniband/hw/mthca/mthca_srq.c
index 45dedd2787a4..18998d48c53e 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,
172 scatter->lkey = cpu_to_be32(MTHCA_INVAL_LKEY); 172 scatter->lkey = cpu_to_be32(MTHCA_INVAL_LKEY);
173 } 173 }
174 174
175 srq->last = get_wqe(srq, srq->max - 1);
176
175 return 0; 177 return 0;
176} 178}
177 179
@@ -263,7 +265,6 @@ int mthca_alloc_srq(struct mthca_dev *dev, struct mthca_pd *pd,
263 265
264 srq->first_free = 0; 266 srq->first_free = 0;
265 srq->last_free = srq->max - 1; 267 srq->last_free = srq->max - 1;
266 srq->last = get_wqe(srq, srq->max - 1);
267 268
268 return 0; 269 return 0;
269 270