Netdev Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Saeed Mahameed <saeed@kernel.org>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>
Cc: netdev@vger.kernel.org, Leon Romanovsky <leonro@nvidia.com>,
	Tariq Toukan <tariqt@nvidia.com>, Aya Levin <ayal@nvidia.com>,
	Moshe Shemesh <moshe@nvidia.com>,
	Saeed Mahameed <saeedm@nvidia.com>
Subject: [net 06/12] net/mlx5: Block switchdev mode while devlink traps are active
Date: Mon,  9 Aug 2021 20:59:17 -0700	[thread overview]
Message-ID: <20210810035923.345745-7-saeed@kernel.org> (raw)
In-Reply-To: <20210810035923.345745-1-saeed@kernel.org>

From: Aya Levin <ayal@nvidia.com>

Since switchdev mode can't support  devlink traps, verify there are
no active devlink traps before moving eswitch to switchdev mode. If
there are active traps, prevent the switchdev mode configuration.

Fixes: eb3862a0525d ("net/mlx5e: Enable traps according to link state")
Signed-off-by: Aya Levin <ayal@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 011e766e4f67..3bb71a186004 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -48,6 +48,7 @@
 #include "lib/fs_chains.h"
 #include "en_tc.h"
 #include "en/mapping.h"
+#include "devlink.h"
 
 #define mlx5_esw_for_each_rep(esw, i, rep) \
 	xa_for_each(&((esw)->offloads.vport_reps), i, rep)
@@ -3001,12 +3002,19 @@ int mlx5_devlink_eswitch_mode_set(struct devlink *devlink, u16 mode,
 	if (cur_mlx5_mode == mlx5_mode)
 		goto unlock;
 
-	if (mode == DEVLINK_ESWITCH_MODE_SWITCHDEV)
+	if (mode == DEVLINK_ESWITCH_MODE_SWITCHDEV) {
+		if (mlx5_devlink_trap_get_num_active(esw->dev)) {
+			NL_SET_ERR_MSG_MOD(extack,
+					   "Can't change mode while devlink traps are active");
+			err = -EOPNOTSUPP;
+			goto unlock;
+		}
 		err = esw_offloads_start(esw, extack);
-	else if (mode == DEVLINK_ESWITCH_MODE_LEGACY)
+	} else if (mode == DEVLINK_ESWITCH_MODE_LEGACY) {
 		err = esw_offloads_stop(esw, extack);
-	else
+	} else {
 		err = -EINVAL;
+	}
 
 unlock:
 	mlx5_esw_unlock(esw);
-- 
2.31.1


  parent reply	other threads:[~2021-08-10  3:59 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-10  3:59 [pull request][net 00/12] mlx5 fixes 2021-08-09 Saeed Mahameed
2021-08-10  3:59 ` [net 01/12] net/mlx5: Don't skip subfunction cleanup in case of error in module init Saeed Mahameed
2021-08-10  8:53   ` patchwork-bot+netdevbpf
2021-08-10  3:59 ` [net 02/12] net/mlx5: DR, Add fail on error check on decap Saeed Mahameed
2021-08-10  3:59 ` [net 03/12] net/mlx5e: Avoid creating tunnel headers for local route Saeed Mahameed
2021-08-10  3:59 ` [net 04/12] net/mlx5: Bridge, fix ageing time Saeed Mahameed
2021-08-10  3:59 ` [net 05/12] net/mlx5e: Destroy page pool after XDP SQ to fix use-after-free Saeed Mahameed
2021-08-10  3:59 ` Saeed Mahameed [this message]
2021-08-10  3:59 ` [net 07/12] net/mlx5: Fix order of functions in mlx5_irq_detach_nb() Saeed Mahameed
2021-08-10  3:59 ` [net 08/12] net/mlx5: Set all field of mlx5_irq before inserting it to the xarray Saeed Mahameed
2021-08-10  3:59 ` [net 09/12] net/mlx5: Destroy pool->mutex Saeed Mahameed
2021-08-10  3:59 ` [net 10/12] net/mlx5e: TC, Fix error handling memory leak Saeed Mahameed
2021-08-10  3:59 ` [net 11/12] net/mlx5: Synchronize correct IRQ when destroying CQ Saeed Mahameed
2021-08-10  3:59 ` [net 12/12] net/mlx5: Fix return value from tracer initialization Saeed Mahameed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210810035923.345745-7-saeed@kernel.org \
    --to=saeed@kernel.org \
    --cc=ayal@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=kuba@kernel.org \
    --cc=leonro@nvidia.com \
    --cc=moshe@nvidia.com \
    --cc=netdev@vger.kernel.org \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    --subject='Re: [net 06/12] net/mlx5: Block switchdev mode while devlink traps are active' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).