|
@@ -445,8 +445,14 @@ int mlx4_en_activate_rx_rings(struct mlx4_en_priv *priv)
|
|
|
ring->cqn = priv->rx_cq[ring_ind]->mcq.cqn;
|
|
|
|
|
|
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;
|