Patch "net/mlx5e: Remove workaround to avoid syndrome for internal port" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    net/mlx5e: Remove workaround to avoid syndrome for internal port

to the 6.1-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-mlx5e-remove-workaround-to-avoid-syndrome-for-in.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 3a3733cae01e8002567a5520adb6f29bed2c5242
Author: Jianbo Liu <jianbol@xxxxxxxxxx>
Date:   Tue Dec 3 22:49:20 2024 +0200

    net/mlx5e: Remove workaround to avoid syndrome for internal port
    
    [ Upstream commit 5085f861b414e4a51ce28a891dfa32a10a54b64e ]
    
    Previously a workaround was added to avoid syndrome 0xcdb051. It is
    triggered when offload a rule with tunnel encapsulation, and
    forwarding to another table, but not matching on the internal port in
    firmware steering mode. The original workaround skips internal tunnel
    port logic, which is not correct as not all cases are considered. As
    an example, if vlan is configured on the uplink port, traffic can't
    pass because vlan header is not added with this workaround. Besides,
    there is no such issue for software steering. So, this patch removes
    that, and returns error directly if trying to offload such rule for
    firmware steering.
    
    Fixes: 06b4eac9c4be ("net/mlx5e: Don't offload internal port if filter device is out device")
    Signed-off-by: Jianbo Liu <jianbol@xxxxxxxxxx>
    Tested-by: Frode Nordahl <frode.nordahl@xxxxxxxxxxxxx>
    Reviewed-by: Chris Mi <cmi@xxxxxxxxxx>
    Reviewed-by: Ariel Levkovich <lariel@xxxxxxxxxx>
    Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx>
    Link: https://patch.msgid.link/20241203204920.232744-7-tariqt@xxxxxxxxxx
    Signed-off-by: Jakub Kicinski <kuba@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
index 907ad6ffe7275..407556334495d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun_encap.c
@@ -4,6 +4,7 @@
 #include <net/fib_notifier.h>
 #include <net/nexthop.h>
 #include "tc_tun_encap.h"
+#include "fs_core.h"
 #include "en_tc.h"
 #include "tc_tun.h"
 #include "rep/tc.h"
@@ -23,10 +24,18 @@ static int mlx5e_set_int_port_tunnel(struct mlx5e_priv *priv,
 
 	route_dev = dev_get_by_index(dev_net(e->out_dev), e->route_dev_ifindex);
 
-	if (!route_dev || !netif_is_ovs_master(route_dev) ||
-	    attr->parse_attr->filter_dev == e->out_dev)
+	if (!route_dev || !netif_is_ovs_master(route_dev))
 		goto out;
 
+	if (priv->mdev->priv.steering->mode == MLX5_FLOW_STEERING_MODE_DMFS &&
+	    mlx5e_eswitch_uplink_rep(attr->parse_attr->filter_dev) &&
+	    (attr->esw_attr->dests[out_index].flags & MLX5_ESW_DEST_ENCAP)) {
+		mlx5_core_warn(priv->mdev,
+			       "Matching on external port with encap + fwd to table actions is not allowed for firmware steering\n");
+		err = -EINVAL;
+		goto out;
+	}
+
 	err = mlx5e_set_fwd_to_int_port_actions(priv, attr, e->route_dev_ifindex,
 						MLX5E_TC_INT_PORT_EGRESS,
 						&attr->action, out_index);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux