diff mbox

[net,2/2] net/mlx4_en: Disbale GRO for incoming loopback/selftest packets

Message ID 1425221774-8874-3-git-send-email-ogerlitz@mellanox.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Or Gerlitz March 1, 2015, 2:56 p.m. UTC
From: Ido Shamay <idos@mellanox.com>

Packets which are sent from the selftest (ethtool) flow, should not 
be passed to the 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@linux.vnet.ibm.com>
Signed-off-by: Ido Shamay <idos@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
---
 drivers/net/ethernet/mellanox/mlx4/en_selftest.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

Comments

Sergei Shtylyov March 1, 2015, 5:24 p.m. UTC | #1
Hello.

On 3/1/2015 5:56 PM, Or Gerlitz wrote:

> From: Ido Shamay <idos@mellanox.com>

> Packets which are sent from the selftest (ethtool) flow, should not
> be passed to the 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@linux.vnet.ibm.com>
> Signed-off-by: Ido Shamay <idos@mellanox.com>
> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
> ---
>   drivers/net/ethernet/mellanox/mlx4/en_selftest.c |    8 +++++++-
>   1 files changed, 7 insertions(+), 1 deletions(-)

> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_selftest.c b/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
> index 2d8ee66..ac8870c 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);

    Parens not necessary here.

[...]

WBR, Sergei

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Ido Shamai March 2, 2015, 7:47 a.m. UTC | #2
On 3/1/2015 7:24 PM, Sergei Shtylyov wrote:
> Hello.
>
> On 3/1/2015 5:56 PM, Or Gerlitz wrote:
>
>> From: Ido Shamay <idos@mellanox.com>
>
>> Packets which are sent from the selftest (ethtool) flow, should not
>> be passed to the 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@linux.vnet.ibm.com>
>> Signed-off-by: Ido Shamay <idos@mellanox.com>
>> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
>> ---
>>   drivers/net/ethernet/mellanox/mlx4/en_selftest.c |    8 +++++++-
>>   1 files changed, 7 insertions(+), 1 deletions(-)
>
>> diff --git a/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
>> b/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
>> index 2d8ee66..ac8870c 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);
>
>     Parens not necessary here.
>
Will be fixed in V1, thanks.
Any chance checkpatch can identify such cases?

> [...]
>
> WBR, Sergei
>
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx4/en_selftest.c b/drivers/net/ethernet/mellanox/mlx4/en_selftest.c
index 2d8ee66..ac8870c 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;
 }