aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/mlx4
diff options
context:
space:
mode:
authorHans Petter Selasky <hselasky@FreeBSD.org>2017-07-10 19:26:50 +0000
committerHans Petter Selasky <hselasky@FreeBSD.org>2017-07-10 19:26:50 +0000
commit7bb7b27fb1a130ea6a42d9f03ad70372a49e56f9 (patch)
tree8f2d04a3459719209affb4f37c2ebf2cb088f786 /sys/dev/mlx4
parent3185adf0fdb4c9092e75221ce34de14a61dd0e2b (diff)
Notes
Diffstat (limited to 'sys/dev/mlx4')
-rw-r--r--sys/dev/mlx4/mlx4_en/mlx4_en_rx.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c b/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
index 38c0320db41b..05bf7b41467c 100644
--- a/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
+++ b/sys/dev/mlx4/mlx4_en/mlx4_en_rx.c
@@ -394,8 +394,14 @@ int mlx4_en_activate_rx_rings(struct mlx4_en_priv *priv)
ring->rx_mb_size = priv->rx_mb_size;
ring->stride = stride;
- if (ring->stride <= TXBB_SIZE)
+ if (ring->stride <= TXBB_SIZE) {
+ /* Stamp first unused send wqe */
+ __be32 *ptr = (__be32 *)ring->buf;
+ __be32 stamp = cpu_to_be32(1 << STAMP_SHIFT);
+ *ptr = stamp;
+ /* Move pointer to start of rx section */
ring->buf += TXBB_SIZE;
+ }
ring->log_stride = ffs(ring->stride) - 1;
ring->buf_size = ring->size * ring->stride;