Commit 5d862ec
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: 8300f22 ("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>1 parent 1db1f21 commit 5d862ec
3 files changed
Lines changed: 12 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
84 | 84 | | |
85 | 85 | | |
86 | 86 | | |
87 | | - | |
| 87 | + | |
88 | 88 | | |
89 | 89 | | |
90 | 90 | | |
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
99 | 104 | | |
100 | 105 | | |
101 | 106 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
112 | 112 | | |
113 | 113 | | |
114 | 114 | | |
115 | | - | |
| 115 | + | |
116 | 116 | | |
117 | 117 | | |
118 | 118 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3859 | 3859 | | |
3860 | 3860 | | |
3861 | 3861 | | |
| 3862 | + | |
3862 | 3863 | | |
3863 | | - | |
3864 | 3864 | | |
3865 | 3865 | | |
3866 | 3866 | | |
| |||
3901 | 3901 | | |
3902 | 3902 | | |
3903 | 3903 | | |
3904 | | - | |
| 3904 | + | |
| 3905 | + | |
3905 | 3906 | | |
3906 | 3907 | | |
3907 | 3908 | | |
| |||
3911 | 3912 | | |
3912 | 3913 | | |
3913 | 3914 | | |
| 3915 | + | |
3914 | 3916 | | |
3915 | 3917 | | |
3916 | 3918 | | |
| |||
3925 | 3927 | | |
3926 | 3928 | | |
3927 | 3929 | | |
3928 | | - | |
| 3930 | + | |
3929 | 3931 | | |
3930 | 3932 | | |
3931 | 3933 | | |
| |||
0 commit comments