diff options
author | Roland Dreier <rolandd@cisco.com> | 2005-09-19 12:17:56 -0400 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2005-09-19 12:17:56 -0400 |
commit | 6577ae51cf52f5fb0e4a85e673dd7bf2d0074e3e (patch) | |
tree | 3c3be701f7954d52f850c116903deb2698bb8038 /drivers/infiniband | |
parent | 3853194c2e174cee4da093c67bd54cbf9a38559a (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')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_srq.c | 3 |
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 | ||