]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net/mlx5: IPoIB, set self loopback prevention in TIR init
authorTariq Toukan <tariqt@nvidia.com>
Thu, 30 Oct 2025 13:32:36 +0000 (15:32 +0200)
committerJakub Kicinski <kuba@kernel.org>
Wed, 5 Nov 2025 01:04:36 +0000 (17:04 -0800)
In IPoIB, the self loopback prevention configuration apply in activation
stage has two roles: fulfill a firmware requirement for old firmware
(tis_tir_td_order=0), and update the proper configuration as it was not
set in init.

Here we set the proper configuration in init, to allow skipping the
modify_tirs commands on new firmware in a downstream patch.

Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Carolina Jubran <cjubran@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/1761831159-1013140-5-git-send-email-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c

index 976347ac1faf549c1d02cb229efd312a821aa128..0a6003fe60e9f8443b08cf758dde9374e14d9bcc 100644 (file)
@@ -427,6 +427,7 @@ static void mlx5i_destroy_flow_steering(struct mlx5e_priv *priv)
 static int mlx5i_init_rx(struct mlx5e_priv *priv)
 {
        struct mlx5_core_dev *mdev = priv->mdev;
+       enum mlx5e_rx_res_features features;
        int err;
 
        priv->fs = mlx5e_fs_init(priv->profile, mdev,
@@ -445,7 +446,9 @@ static int mlx5i_init_rx(struct mlx5e_priv *priv)
                goto err_destroy_q_counters;
        }
 
-       priv->rx_res = mlx5e_rx_res_create(priv->mdev, 0, priv->max_nch, priv->drop_rq.rqn,
+       features = MLX5E_RX_RES_FEATURE_SELF_LB_BLOCK;
+       priv->rx_res = mlx5e_rx_res_create(priv->mdev, features, priv->max_nch,
+                                          priv->drop_rq.rqn,
                                           &priv->channels.params.packet_merge,
                                           priv->channels.params.num_channels);
        if (IS_ERR(priv->rx_res)) {