OSDN Git Service

net/mlx5e: XDP, Fix fifo overrun on XDP_REDIRECT
authorDragos Tatulea <dtatulea@nvidia.com>
Tue, 1 Aug 2023 17:41:03 +0000 (20:41 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Wed, 16 Aug 2023 20:39:28 +0000 (13:39 -0700)
commit34a79876d9f77e971115236bcf7b5d14a8ecf542
tree13961cc9ed5d773d9f63b7fae7e7a5095ee2011c
parentde4c5efeeca7172306bdc2e3efc0c6c3953bb338
net/mlx5e: XDP, Fix fifo overrun on XDP_REDIRECT

Before this fix, running high rate traffic through XDP_REDIRECT
with multibuf could overrun the fifo used to release the
xdp frames after tx completion. This resulted in corrupted data
being consumed on the free side.

The culplirt was a miscalculation of the fifo size: the maximum ratio
between fifo entries / data segments was incorrect. This ratio serves to
calculate the max fifo size for a full sq where each packet uses the
worst case number of entries in the fifo.

This patch fixes the formula and names the constant. It also makes sure
that future values will use a power of 2 number of entries for the fifo
mask to work.

Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Fixes: 3f734b8c594b ("net/mlx5e: XDP, Use multiple single-entry objects in xdpi_fifo")
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en/xdp.h
drivers/net/ethernet/mellanox/mlx5/core/en_main.c