]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: Avoid encap flows deletion attempt the 1st time a neigh is resolved
authorOr Gerlitz <ogerlitz@mellanox.com>
Mon, 10 Dec 2018 15:05:59 +0000 (17:05 +0200)
committerSaeed Mahameed <saeedm@mellanox.com>
Thu, 13 Dec 2018 09:24:44 +0000 (01:24 -0800)
commitceef8791d61a3d602525ce4285229b5eab750c95
treef79f125b214855fcd5ec7dc0a31f46561a1b11fa
parent26e0fece6f01d48a5f3f92115e3393c1de4e47b1
net/mlx5e: Avoid encap flows deletion attempt the 1st time a neigh is resolved

Currently, we are deleting offloaded encap flows in case the relevant neigh
becomes unconnected while the encap is valid (a sign that it used to be
connected), or if the curr neigh mac is different from the cached mac
(a sign that the remote side changed their mac).

The 2nd check also applies when the neigh becomes connected on the 1st
time (we start with zero mac). Before the offending commit, the deleting
handler was practically no op, as no flows were offloaded. But since
that commit, we offload neigh-less encap flows to slow path.

Under mirroring scheme, we go into the delete handler, attempt to unoffload a
mirror rule which was never set (as we were offloading to slow path) and crash.

Fix that by calling the delete handler only when the encap is valid,
which covers both cases mentioned above.

Fixes: ff562d04a775 ('net/mlx5e: Use a slow path rule instead if vxlan neighbour isn't available')
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Eli Britstein <elibr@mellanox.com>
Reviewed-by: Paul Blakey <paulb@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c