Skip to content

Commit 6496bbf

Browse files
Eugenia Emantayevdavem330
authored andcommitted
net/mlx4_en: Fix bad WQE issue
Single send WQE in RX buffer should be stamped with software ownership in order to prevent the flow of QP in error in FW once UPDATE_QP is called. Fixes: 9f519f6 ('mlx4_en: Not using Shared Receive Queues') Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com> Signed-off-by: Tariq Toukan <tariqt@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 3b01fe7 commit 6496bbf

File tree

1 file changed

+7
-1
lines changed
  • drivers/net/ethernet/mellanox/mlx4

1 file changed

+7
-1
lines changed

drivers/net/ethernet/mellanox/mlx4/en_rx.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -445,8 +445,14 @@ int mlx4_en_activate_rx_rings(struct mlx4_en_priv *priv)
445445
ring->cqn = priv->rx_cq[ring_ind]->mcq.cqn;
446446

447447
ring->stride = stride;
448-
if (ring->stride <= TXBB_SIZE)
448+
if (ring->stride <= TXBB_SIZE) {
449+
/* Stamp first unused send wqe */
450+
__be32 *ptr = (__be32 *)ring->buf;
451+
__be32 stamp = cpu_to_be32(1 << STAMP_SHIFT);
452+
*ptr = stamp;
453+
/* Move pointer to start of rx section */
449454
ring->buf += TXBB_SIZE;
455+
}
450456

451457
ring->log_stride = ffs(ring->stride) - 1;
452458
ring->buf_size = ring->size * ring->stride;

0 commit comments

Comments
 (0)