mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
net/mlx5e: Delete forward rule for ct or sample action
[ Upstream commit2820110d94] When there is ct or sample action, the ct or sample rule will be deleted and return. But if there is an extra mirror action, the forward rule can't be deleted because of the return. Fix it by removing the return. Fixes:69e2916ebc("net/mlx5: CT: Add support for mirroring") Fixes:f94d6389f6("net/mlx5e: TC, Add support to offload sample action") Signed-off-by: Chris Mi <cmi@nvidia.com> Reviewed-by: Roi Dayan <roid@nvidia.com> Signed-off-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
aa584ad8fa
commit
07f16b1741
@@ -1179,21 +1179,16 @@ void mlx5e_tc_unoffload_fdb_rules(struct mlx5_eswitch *esw,
|
||||
if (attr->flags & MLX5_ESW_ATTR_FLAG_SLOW_PATH)
|
||||
goto offload_rule_0;
|
||||
|
||||
if (flow_flag_test(flow, CT)) {
|
||||
mlx5_tc_ct_delete_flow(get_ct_priv(flow->priv), flow, attr);
|
||||
return;
|
||||
}
|
||||
|
||||
if (flow_flag_test(flow, SAMPLE)) {
|
||||
mlx5e_tc_sample_unoffload(get_sample_priv(flow->priv), flow->rule[0], attr);
|
||||
return;
|
||||
}
|
||||
|
||||
if (attr->esw_attr->split_count)
|
||||
mlx5_eswitch_del_fwd_rule(esw, flow->rule[1], attr);
|
||||
|
||||
if (flow_flag_test(flow, CT))
|
||||
mlx5_tc_ct_delete_flow(get_ct_priv(flow->priv), flow, attr);
|
||||
else if (flow_flag_test(flow, SAMPLE))
|
||||
mlx5e_tc_sample_unoffload(get_sample_priv(flow->priv), flow->rule[0], attr);
|
||||
else
|
||||
offload_rule_0:
|
||||
mlx5_eswitch_del_offloaded_rule(esw, flow->rule[0], attr);
|
||||
mlx5_eswitch_del_offloaded_rule(esw, flow->rule[0], attr);
|
||||
}
|
||||
|
||||
struct mlx5_flow_handle *
|
||||
|
||||
Reference in New Issue
Block a user