net/mlx5e: Fix nest_level for vlan pop action
authorDmytro Linkin <dmitrolin@mellanox.com>
Wed, 1 Apr 2020 11:41:27 +0000 (14:41 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Apr 2020 07:06:25 +0000 (09:06 +0200)
commita132dc5aff2a86387c4030be4258bfaa280f412c
treef2a6d30ab07adfaddc260669cdafd2857f11f470
parente75edb9714dba002514934becc64a347731129ac
net/mlx5e: Fix nest_level for vlan pop action

[ Upstream commit 70f478ca085deec4d6c1f187f773f5827ddce7e8 ]

Current value of nest_level, assigned from net_device lower_level value,
does not reflect the actual number of vlan headers, needed to pop.
For ex., if we have untagged ingress traffic sended over vlan devices,
instead of one pop action, driver will perform two pop actions.
To fix that, calculate nest_level as difference between vlan device and
parent device lower_levels.

Fixes: f3b0a18bb6cb ("net: remove unnecessary variables and callback")
Signed-off-by: Dmytro Linkin <dmitrolin@mellanox.com>
Signed-off-by: Roi Dayan <roid@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c