ACK: [PATCH][Vivid] net/mlx4_en: Disbale GRO for incoming loopback/selftest packets

Brad Figg brad.figg at canonical.com
Fri Jun 26 16:30:56 UTC 2015


On Thu, Jun 25, 2015 at 09:45:56PM -0300, Rafael David Tinoco wrote:
> BugLink: https://bugs.launchpad.net/bugs/1432848
> 
> 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: dd65beac48a5 ("net/mlx4_en: Extend usage of napi_gro_frags")
> Reported-by: Carol Soto <clsoto at linux.vnet.ibm.com>
> OriginalAuthor: Ido Shamay <idos at mellanox.com>
> (backported from commit 1037ebbbd262227a91dfdd558159e345d4edf6b7 upstream)
> Signed-off-by: Ido Shamay <idos at mellanox.com>
> Signed-off-by: Or Gerlitz <ogerlitz at mellanox.com>
> Signed-off-by: David S. Miller <davem at davemloft.net>
> Signed-off-by: Rafael David Tinoco <rafael.tinoco at canonical.com>
> ---
>  drivers/net/ethernet/mellanox/mlx4/en_selftest.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_selftest.c b/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
> index 2d8ee66..a61009f 100644
> --- a/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
> +++ b/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
> @@ -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)) {
> @@ -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;
>  }
> -- 
> 2.1.4
> 
> 
> -- 
> kernel-team mailing list
> kernel-team at lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/kernel-team

1. Clean backport.
2. Positive testing.

-- 
Brad Figg brad.figg at canonical.com http://www.canonical.com




More information about the kernel-team mailing list