Patch "net/mlx5: E-Switch, Don't allow changing inline mode when flows are configured" has been added to the 4.10-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
net/mlx5: E-Switch, Don't allow changing inline mode when flows are configured
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
net-mlx5-e-switch-don-t-allow-changing-inline-mode-when-flows-are-configured.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From foo@baz Mon Mar 27 18:18:08 CEST 2017
From: Roi Dayan <[email protected]>
Date: Tue, 21 Mar 2017 15:59:14 +0200
Subject: net/mlx5: E-Switch, Don't allow changing inline mode when flows are configured
From: Roi Dayan <[email protected]>
[ Upstream commit 375f51e2b5b7b9a42b3139aea519cbb1bfc5d6ef ]
Changing the eswitch inline mode can potentially cause already configured flows not to match the policy. E.g. set policy L4, add some L4 rules, set policy to L2 --> bad! Hence we disallow it.
Keep track of how many offloaded rules are now set and refuse inline mode changes if this isn't zero.
--- drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 8 ++++++++ 2 files changed, 9 insertions(+)
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +1 -0
@@ -201,6 +201,7 @@ struct mlx5_esw_offload {struct mlx5_eswitch_rep *vport_reps;DECLARE_HASHTABLE (encap_tbl,8 );u8 inline_mode; +u64 num_flows; };struct mlx5_eswitch {
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +8 -0
@@ -93,6 +93,8 @@ mlx5_eswitch_add_offloaded_rule(struct m spec, &flow_act, dest, i);if (IS_ERR (rule))mlx5_fc_destroy (esw->dev, counter); +else + esw->offloads.num_flows++;return rule; }
@@ -108,6 +110,7 @@ mlx5_eswitch_del_offloaded_rule(struct m counter =mlx5_flow_rule_counter (rule);mlx5_del_flow_rules (rule);mlx5_fc_destroy (esw->dev, counter); + esw->offloads.num_flows--; } }
@@ -919,6 +922,11 @@ int mlx5_devlink_eswitch_inline_mode_set MLX5_CAP_INLINE_MODE_VPORT_CONTEXT)return -EOPNOTSUPP ; +if (esw->offloads.num_flows >0 ) { +esw_warn (dev,"Can't set inline mode when flows are configured\n" ); +return -EOPNOTSUPP ; + } + err =esw_inline_mode_from_devlink (mode, &mlx5_mode);if (err) goto out;
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/net-mlx5e-change-the-tc-offload-rule-add-del-code-path-to-be-per-nic-or-e-switch.patch queue-4.10/net-mlx5-e-switch-don-t-allow-changing-inline-mode-when-flows-are-configured.patch