net/mlx5e: Disable loopback self-test on multi-PF netdev
authorCarolina Jubran <cjubran@nvidia.com>
Thu, 7 Nov 2024 18:35:27 +0000 (20:35 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 12 Nov 2024 03:23:38 +0000 (19:23 -0800)
In Multi-PF (Socket Direct) configurations, when a loopback packet is
sent through one of the secondary devices, it will always be received
on the primary device. This causes the loopback layer to fail in
identifying the loopback packet as the devices are different.

To avoid false test failures, disable the loopback self-test in
Multi-PF configurations.

Fixes: ed29705e4ed1 ("net/mlx5: Enable SD feature")
Signed-off-by: Carolina Jubran <cjubran@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20241107183527.676877-8-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c

index 5bf8318..1d60465 100644 (file)
@@ -36,6 +36,7 @@
 #include "en.h"
 #include "en/port.h"
 #include "eswitch.h"
+#include "lib/mlx5.h"
 
 static int mlx5e_test_health_info(struct mlx5e_priv *priv)
 {
@@ -247,6 +248,9 @@ static int mlx5e_cond_loopback(struct mlx5e_priv *priv)
        if (is_mdev_switchdev_mode(priv->mdev))
                return -EOPNOTSUPP;
 
+       if (mlx5_get_sd(priv->mdev))
+               return -EOPNOTSUPP;
+
        return 0;
 }