Skip to content

Commit

Permalink
net/mlx4_en: Disbale GRO for incoming loopback/selftest packets
Browse files Browse the repository at this point in the history
Packets which are sent from the selftest (ethtool) flow,
should not be passed to GRO stack but rather dropped by
the driver after validation. To achieve that, we disable
GRO for the duration of the selftest.

Fixes: dd65bea ("net/mlx4_en: Extend usage of napi_gro_frags")
Reported-by: Carol Soto <clsoto@linux.vnet.ibm.com>
Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Ido Shamay authored and David S. Miller committed Mar 2, 2015
1 parent f5956fa commit 1037ebb
Showing 1 changed file with 7 additions and 1 deletion.
8 changes: 7 additions & 1 deletion drivers/net/ethernet/mellanox/mlx4/en_selftest.c
Original file line number Diff line number Diff line change
Expand Up @@ -81,12 +81,14 @@ static int mlx4_en_test_loopback(struct mlx4_en_priv *priv)
{
u32 loopback_ok = 0;
int i;

bool gro_enabled;

priv->loopback_ok = 0;
priv->validate_loopback = 1;
gro_enabled = priv->dev->features & NETIF_F_GRO;

mlx4_en_update_loopback_state(priv->dev, priv->dev->features);
priv->dev->features &= ~NETIF_F_GRO;

/* xmit */
if (mlx4_en_test_loopback_xmit(priv)) {
Expand All @@ -108,6 +110,10 @@ static int mlx4_en_test_loopback(struct mlx4_en_priv *priv)
mlx4_en_test_loopback_exit:

priv->validate_loopback = 0;

if (gro_enabled)
priv->dev->features |= NETIF_F_GRO;

mlx4_en_update_loopback_state(priv->dev, priv->dev->features);
return !loopback_ok;
}
Expand Down

0 comments on commit 1037ebb

Please sign in to comment.