]> git.baikalelectronics.ru Git - kernel.git/commit
net/mlx5e: Wait for concurrent flow deletion during neigh/fib events
authorVlad Buslov <vladbu@nvidia.com>
Thu, 21 Oct 2021 15:15:10 +0000 (18:15 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Tue, 16 Nov 2021 20:20:18 +0000 (12:20 -0800)
commiteb96a70f746d197832f1d5aacdb85fc5b48a21c2
tree522dd97c25971f2b857010b85426e98fcaf14b09
parent55da76dc659056569df04e43fd21601b921573f5
net/mlx5e: Wait for concurrent flow deletion during neigh/fib events

Function mlx5e_take_tmp_flow() skips flows with zero reference count. This
can cause syndrome 0x179e84 when the called from neigh or route update code
and the skipped flow is not removed from the hardware by the time
underlying encap/decap resource is deleted. Add new completion
'del_hw_done' that is completed when flow is unoffloaded. This is safe to
do because flow with reference count zero needs to be detached from
encap/decap entry before its memory is deallocated, which requires taking
the encap_tbl_lock mutex that is held by the event handlers code.

Fixes: 3259cb086e1b ("net/mlx5e: Handle FIB events to update tunnel endpoint device")
Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
drivers/net/ethernet/mellanox/mlx5/core/en/tc_priv.h
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c