]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - contrib/ofed/libmlx4/fixes/post_rcv_end_of_sg.patch
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / contrib / ofed / libmlx4 / fixes / post_rcv_end_of_sg.patch
1 As in libmthca, need to initialize SRQ WQE scatter entries to the
2 invalid lkey at work queue creation time.
3
4 Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
5
6 Index: libmlx4/src/srq.c
7 ===================================================================
8 --- libmlx4.orig/src/srq.c      2009-12-09 15:08:52.000000000 +0200
9 +++ libmlx4/src/srq.c   2009-12-09 18:44:32.000000000 +0200
10 @@ -128,6 +128,7 @@ int mlx4_alloc_srq_buf(struct ibv_pd *pd
11                        struct mlx4_srq *srq)
12  {
13         struct mlx4_wqe_srq_next_seg *next;
14 +       struct mlx4_wqe_data_seg *scatter;
15         int size;
16         int buf_size;
17         int i;
18 @@ -160,6 +161,11 @@ int mlx4_alloc_srq_buf(struct ibv_pd *pd
19         for (i = 0; i < srq->max; ++i) {
20                 next = get_wqe(srq, i);
21                 next->next_wqe_index = htons((i + 1) & (srq->max - 1));
22 +
23 +               for (scatter = (void *) (next + 1);
24 +                    (void *) scatter < (void *) next + (1 << srq->wqe_shift);
25 +                    ++scatter)
26 +                       scatter->lkey = htonl(MLX4_INVALID_LKEY);
27         }
28  
29         srq->head = 0;