diff options
author | Jack Morgenstein <jackm@dev.mellanox.co.il> | 2009-12-17 17:15:40 +0200 |
---|---|---|
committer | Roland Dreier <rolandd@cisco.com> | 2010-02-08 09:08:06 -0800 |
commit | c142d49388aeb6ef28c41f31857aeaea87e81caa (patch) | |
tree | 7c80a76ec9c8476f17f4d2da803305f38a129718 | |
parent | 444f634f38155fa84224eaa260753811455fee71 (diff) | |
download | libmlx4-c142d49388aeb6ef28c41f31857aeaea87e81caa.tar.gz |
Initialize SRQ scatter entries when creating an SRQ
ConnectX requires SRQ WQE scatter entries to be initialized with the
invalid L_Key at SRQ creation time.
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
-rw-r--r-- | src/srq.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -128,6 +128,7 @@ int mlx4_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr, struct mlx4_srq *srq) { struct mlx4_wqe_srq_next_seg *next; + struct mlx4_wqe_data_seg *scatter; int size; int buf_size; int i; @@ -160,6 +161,11 @@ int mlx4_alloc_srq_buf(struct ibv_pd *pd, struct ibv_srq_attr *attr, for (i = 0; i < srq->max; ++i) { next = get_wqe(srq, i); next->next_wqe_index = htons((i + 1) & (srq->max - 1)); + + for (scatter = (void *) (next + 1); + (void *) scatter < (void *) next + (1 << srq->wqe_shift); + ++scatter) + scatter->lkey = htonl(MLX4_INVALID_LKEY); } srq->head = 0; |