diff options
author | 2023-05-22 14:48:52 +0200 | |
---|---|---|
committer | 2023-05-24 20:44:18 -0700 | |
commit | 5d862ec631f3d3cc3b4f8cdb5b9fc5879663f1d3 (patch) | |
tree | cce5081f3db4407e8dc955654d32c66ff004558a /net/core/sock.c | |
parent | net/mlx5e: Use query_special_contexts cmd only once per mdev (diff) | |
download | wireguard-linux-5d862ec631f3d3cc3b4f8cdb5b9fc5879663f1d3.tar.xz wireguard-linux-5d862ec631f3d3cc3b4f8cdb5b9fc5879663f1d3.zip |
net/mlx5: Fix post parse infra to only parse every action once
Caller of mlx5e_tc_act_post_parse() needs it to parse only the subset of
actions starting after previous split and ending at the current action.
However, that range is not provided as arguments and
mlx5e_tc_act_post_parse() uses generic flow_action_for_each() that iterates
over all flow actions. Not only this is redundant, it also causes a bug
when mlx5e_tc_act->post_parse() callback is not idempotent since it will be
called for every split. For example, ct action tc_act_post_parse_ct()
callback obtains a reference to mlx5_ct_ft instance and calling it several
times during parsing stage will cause reference counter imbalance.
Fix the issue by providing a proper action range of the current split
subset to mlx5e_tc_act_post_parse() and only calling
mlx5e_tc_act->post_parse() for actions inside the subset range.
Fixes: 8300f225268b ("net/mlx5e: Create new flow attr for multi table actions")
Signed-off-by: Vlad Buslov <vladbu@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Diffstat (limited to 'net/core/sock.c')
0 files changed, 0 insertions, 0 deletions