Hi all,
Today's linux-next merge of the net-next tree got a conflict in:
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
between commit:
154e62abe9cd ("net/mlx5e: Properly initialize flow attributes for slow path eswitch rule deletion")
from the net tree and commit:
e88afe759a49 ("net/mlx5e: Err if asked to mirror a goto chain tc eswitch rule")
e85e02bad29e ("net/mlx5: E-Switch, Rename esw attr mirror count field")
from the net-next tree.
I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.
--
Cheers,
Stephen Rothwell
diff --cc drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
index 9dabe9d4b279,53ebb5a48018..000000000000
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
@@@ -870,9 -903,9 +903,9 @@@ mlx5e_tc_offload_to_slow_path(struct ml
struct mlx5_flow_handle *rule;
memcpy(slow_attr, flow->esw_attr, sizeof(*slow_attr));
- slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST,
- slow_attr->split_count = 0,
- slow_attr->dest_chain = FDB_SLOW_PATH_CHAIN,
+ slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
- slow_attr->mirror_count = 0;
++ slow_attr->split_count = 0;
+ slow_attr->dest_chain = FDB_SLOW_PATH_CHAIN;
rule = mlx5e_tc_offload_fdb_rules(esw, flow, spec, slow_attr);
if (!IS_ERR(rule))
@@@ -887,9 -920,6 +920,9 @@@ mlx5e_tc_unoffload_from_slow_path(struc
struct mlx5_esw_flow_attr *slow_attr)
{
memcpy(slow_attr, flow->esw_attr, sizeof(*slow_attr));
+ slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
- slow_attr->mirror_count = 0;
++ slow_attr->split_count = 0;
+ slow_attr->dest_chain = FDB_SLOW_PATH_CHAIN;
mlx5e_tc_unoffload_fdb_rules(esw, flow, slow_attr);
flow->flags &= ~MLX5E_TC_FLOW_SLOW;
}
@@@ -909,11 -939,13 +942,12 @@@ mlx5e_tc_add_fdb_flow(struct mlx5e_pri
struct mlx5e_rep_priv *rpriv;
struct mlx5e_priv *out_priv;
int err = 0, encap_err = 0;
+ int out_index;
- /* if prios are not supported, keep the old behaviour of using same prio
- * for all offloaded rules.
- */
- if (!mlx5_eswitch_prios_supported(esw))
- attr->prio = 1;
+ if (!mlx5_eswitch_prios_supported(esw) && attr->prio != 1) {
+ NL_SET_ERR_MSG(extack, "E-switch priorities unsupported, upgrade FW");
+ return -EOPNOTSUPP;
+ }
if (attr->chain > max_chain) {
NL_SET_ERR_MSG(extack, "Requested chain is out of supported range");
@@@ -2980,15 -2667,7 +2667,15 @@@ static int parse_tc_fdb_actions(struct
if (!actions_match_supported(priv, exts, parse_attr, flow, extack))
return -EOPNOTSUPP;
+ if (attr->dest_chain) {
+ if (attr->action & MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) {
+ NL_SET_ERR_MSG(extack, "Mirroring goto chain rules isn't supported");
+ return -EOPNOTSUPP;
+ }
+ attr->action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
+ }
+
- if (attr->mirror_count > 0 && !mlx5_esw_has_fwd_fdb(priv->mdev)) {
+ if (attr->split_count > 0 && !mlx5_esw_has_fwd_fdb(priv->mdev)) {
NL_SET_ERR_MSG_MOD(extack,
"current firmware doesn't support split rule for port mirroring");
netdev_warn_once(priv->netdev, "current firmware doesn't support split rule for port mirroring\n");
On Sun, Dec 16, 2018 at 4:25 PM Stephen Rothwell <[email protected]> wrote:
>
> Hi all,
>
> Today's linux-next merge of the net-next tree got a conflict in:
>
> drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
>
> between commit:
>
> 154e62abe9cd ("net/mlx5e: Properly initialize flow attributes for slow path eswitch rule deletion")
>
> from the net tree and commit:
>
> e88afe759a49 ("net/mlx5e: Err if asked to mirror a goto chain tc eswitch rule")
> e85e02bad29e ("net/mlx5: E-Switch, Rename esw attr mirror count field")
>
> from the net-next tree.
>
> I fixed it up (see below) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.
>
> --
> Cheers,
> Stephen Rothwell
>
> diff --cc drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> index 9dabe9d4b279,53ebb5a48018..000000000000
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> @@@ -870,9 -903,9 +903,9 @@@ mlx5e_tc_offload_to_slow_path(struct ml
> struct mlx5_flow_handle *rule;
>
> memcpy(slow_attr, flow->esw_attr, sizeof(*slow_attr));
> - slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST,
> - slow_attr->split_count = 0,
> - slow_attr->dest_chain = FDB_SLOW_PATH_CHAIN,
> + slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
> - slow_attr->mirror_count = 0;
> ++ slow_attr->split_count = 0;
> + slow_attr->dest_chain = FDB_SLOW_PATH_CHAIN;
>
> rule = mlx5e_tc_offload_fdb_rules(esw, flow, spec, slow_attr);
> if (!IS_ERR(rule))
> @@@ -887,9 -920,6 +920,9 @@@ mlx5e_tc_unoffload_from_slow_path(struc
> struct mlx5_esw_flow_attr *slow_attr)
> {
> memcpy(slow_attr, flow->esw_attr, sizeof(*slow_attr));
> + slow_attr->action = MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
> - slow_attr->mirror_count = 0;
> ++ slow_attr->split_count = 0;
> + slow_attr->dest_chain = FDB_SLOW_PATH_CHAIN;
> mlx5e_tc_unoffload_fdb_rules(esw, flow, slow_attr);
> flow->flags &= ~MLX5E_TC_FLOW_SLOW;
> }
> @@@ -909,11 -939,13 +942,12 @@@ mlx5e_tc_add_fdb_flow(struct mlx5e_pri
> struct mlx5e_rep_priv *rpriv;
> struct mlx5e_priv *out_priv;
> int err = 0, encap_err = 0;
> + int out_index;
>
> - /* if prios are not supported, keep the old behaviour of using same prio
> - * for all offloaded rules.
> - */
> - if (!mlx5_eswitch_prios_supported(esw))
> - attr->prio = 1;
> + if (!mlx5_eswitch_prios_supported(esw) && attr->prio != 1) {
> + NL_SET_ERR_MSG(extack, "E-switch priorities unsupported, upgrade FW");
> + return -EOPNOTSUPP;
> + }
>
> if (attr->chain > max_chain) {
> NL_SET_ERR_MSG(extack, "Requested chain is out of supported range");
> @@@ -2980,15 -2667,7 +2667,15 @@@ static int parse_tc_fdb_actions(struct
> if (!actions_match_supported(priv, exts, parse_attr, flow, extack))
> return -EOPNOTSUPP;
>
> + if (attr->dest_chain) {
> + if (attr->action & MLX5_FLOW_CONTEXT_ACTION_FWD_DEST) {
> + NL_SET_ERR_MSG(extack, "Mirroring goto chain rules isn't supported");
> + return -EOPNOTSUPP;
> + }
> + attr->action |= MLX5_FLOW_CONTEXT_ACTION_FWD_DEST;
> + }
> +
> - if (attr->mirror_count > 0 && !mlx5_esw_has_fwd_fdb(priv->mdev)) {
> + if (attr->split_count > 0 && !mlx5_esw_has_fwd_fdb(priv->mdev)) {
> NL_SET_ERR_MSG_MOD(extack,
> "current firmware doesn't support split rule for port mirroring");
> netdev_warn_once(priv->netdev, "current firmware doesn't support split rule for port mirroring\n");
Looks good to me.
On Mon, Dec 17, 2018 at 11:29 PM Saeed Mahameed
<[email protected]> wrote:
> On Sun, Dec 16, 2018 at 4:25 PM Stephen Rothwell <[email protected]> wrote:
> > I fixed it up (see below) and can carry the fix as necessary. This
> Looks good to me.
here too
> > Today's linux-next merge of the net-next tree got a conflict in:
> > drivers/net/ethernet/mellanox/mlx5/core/en_tc.c
> > between commit:
> > 154e62abe9cd ("net/mlx5e: Properly initialize flow attributes for slow path eswitch rule deletion")
> > from the net tree and commit:
> > e88afe759a49 ("net/mlx5e: Err if asked to mirror a goto chain tc eswitch rule")
> > e85e02bad29e ("net/mlx5: E-Switch, Rename esw attr mirror count field")
> > from the net-next tree.
Just a note,
e88afe759a49 ("net/mlx5e: Err if asked to mirror a goto chain tc
eswitch rule")i
s from net and not net-next
see it here [1] among the top 10 patches
https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/log/?qt=grep&q=mlx5