netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [pull request][net-next 00/15] mlx5 updates 2023-06-21
@ 2023-06-22  5:47 Saeed Mahameed
  2023-06-22  5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
                   ` (14 more replies)
  0 siblings, 15 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan

From: Saeed Mahameed <saeedm@nvidia.com>

This series provides minor cleanups and bug fixes for net-next branch.

Please pull and let me know if there is any problem.

Thanks,
Saeed.


The following changes since commit 53bf91641ae19fe51fb24422de6d07565a3536d0:

  inet: Cleanup on charging memory for newly accepted sockets (2023-06-21 17:37:42 -0700)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux.git tags/mlx5-updates-2023-06-21

for you to fetch changes up to e921b6931f93b34ede1dbf150042bfac6475db09:

  net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() (2023-06-21 22:43:55 -0700)

----------------------------------------------------------------
mlx5-updates-2023-06-21

mlx5 driver minor cleanup and fixes to net-next

----------------------------------------------------------------
Dan Carpenter (1):
      net/mlx5: Fix error code in mlx5_is_reset_now_capable()

Jiri Pirko (4):
      net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported()
      net/mlx5: Remove redundant is_mdev_switchdev_mode() check from is_ib_rep_supported()
      net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id()
      net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type()

Lama Kayal (1):
      net/mlx5: Fix reserved at offset in hca_cap register

Roi Dayan (7):
      net/mlx5: Lag, Remove duplicate code checking lag is supported
      net/mlx5e: Use vhca_id for device index in vport rx rules
      net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf
      net/mlx5e: E-Switch, Use xarray for devcom paired device index
      net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0
      net/mlx5e: Remove redundant comment
      net/mlx5e: E-Switch, Fix shared fdb error flow

Shay Drory (2):
      net/mlx5: Fix UAF in mlx5_eswitch_cleanup()
      net/mlx5: Fix SFs kernel documentation error

 .../ethernet/mellanox/mlx5/switchdev.rst           | 22 ++++----
 drivers/net/ethernet/mellanox/mlx5/core/dev.c      |  6 ---
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |  6 +--
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c  | 24 +++------
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |  2 +-
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c | 61 ++++++++++++++++------
 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c |  2 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c  | 15 ++++--
 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h  | 10 +---
 include/linux/mlx5/mlx5_ifc.h                      |  4 +-
 10 files changed, 84 insertions(+), 68 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup()
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 02/15] net/mlx5: Fix SFs kernel documentation error Saeed Mahameed
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Shay Drory, Dan Carpenter,
	Automatic Verification, Gal Pressman, Moshe Shemesh

From: Shay Drory <shayd@nvidia.com>

mlx5_eswitch_cleanup() is using esw right after freeing it for
releasing devlink_param.
Fix it by releasing the devlink_param before freeing the esw, and
adjust the create function accordingly.

Fixes: 3f90840305e2 ("net/mlx5: Move esw multiport devlink param to eswitch code")
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Automatic Verification <verifier@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../net/ethernet/mellanox/mlx5/core/eswitch.c  | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index 5aaedbf71783..b4e465856127 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -1751,16 +1751,14 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
 	if (!MLX5_VPORT_MANAGER(dev) && !MLX5_ESWITCH_MANAGER(dev))
 		return 0;
 
+	esw = kzalloc(sizeof(*esw), GFP_KERNEL);
+	if (!esw)
+		return -ENOMEM;
+
 	err = devl_params_register(priv_to_devlink(dev), mlx5_eswitch_params,
 				   ARRAY_SIZE(mlx5_eswitch_params));
 	if (err)
-		return err;
-
-	esw = kzalloc(sizeof(*esw), GFP_KERNEL);
-	if (!esw) {
-		err = -ENOMEM;
-		goto unregister_param;
-	}
+		goto free_esw;
 
 	esw->dev = dev;
 	esw->manager_vport = mlx5_eswitch_manager_vport(dev);
@@ -1821,10 +1819,10 @@ int mlx5_eswitch_init(struct mlx5_core_dev *dev)
 	if (esw->work_queue)
 		destroy_workqueue(esw->work_queue);
 	debugfs_remove_recursive(esw->debugfs_root);
-	kfree(esw);
-unregister_param:
 	devl_params_unregister(priv_to_devlink(dev), mlx5_eswitch_params,
 			       ARRAY_SIZE(mlx5_eswitch_params));
+free_esw:
+	kfree(esw);
 	return err;
 }
 
@@ -1848,9 +1846,9 @@ void mlx5_eswitch_cleanup(struct mlx5_eswitch *esw)
 	esw_offloads_cleanup(esw);
 	mlx5_esw_vports_cleanup(esw);
 	debugfs_remove_recursive(esw->debugfs_root);
-	kfree(esw);
 	devl_params_unregister(priv_to_devlink(esw->dev), mlx5_eswitch_params,
 			       ARRAY_SIZE(mlx5_eswitch_params));
+	kfree(esw);
 }
 
 /* Vport Administration */
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 02/15] net/mlx5: Fix SFs kernel documentation error
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
  2023-06-22  5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register Saeed Mahameed
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Shay Drory,
	Rahul Rameshbabu, Moshe Shemesh, Automatic Verification,
	Gal Pressman

From: Shay Drory <shayd@nvidia.com>

Indent SFs probe code example in order to fix the below error:

Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst:57: ERROR: Unexpected indentation.
Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst:61: ERROR: Unexpected indentation.

Fixes: e71383fb9cd1 ("net/mlx5: Light probe local SFs")
Signed-off-by: Shay Drory <shayd@nvidia.com>
Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Reviewed-by: Automatic Verification <verifier@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
---
 .../ethernet/mellanox/mlx5/switchdev.rst      | 22 ++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst b/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst
index db62187eebce..6e3f5ee8b0d0 100644
--- a/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst
+++ b/Documentation/networking/device_drivers/ethernet/mellanox/mlx5/switchdev.rst
@@ -51,19 +51,21 @@ This will allow user to configure the SF before the SF have been fully probed,
 which will save time.
 
 Usage example:
-Create SF:
-$ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11
-$ devlink port function set pci/0000:08:00.0/32768 \
-               hw_addr 00:00:00:00:00:11 state active
 
-Enable ETH auxiliary device:
-$ devlink dev param set auxiliary/mlx5_core.sf.1 \
-              name enable_eth value true cmode driverinit
+- Create SF::
 
-Now, in order to fully probe the SF, use devlink reload:
-$ devlink dev reload auxiliary/mlx5_core.sf.1
+    $ devlink port add pci/0000:08:00.0 flavour pcisf pfnum 0 sfnum 11
+    $ devlink port function set pci/0000:08:00.0/32768 hw_addr 00:00:00:00:00:11 state active
 
-mlx5 supports ETH,rdma and vdpa (vnet) auxiliary devices devlink params (see :ref:`Documentation/networking/devlink/devlink-params.rst`)
+- Enable ETH auxiliary device::
+
+    $ devlink dev param set auxiliary/mlx5_core.sf.1 name enable_eth value true cmode driverinit
+
+- Now, in order to fully probe the SF, use devlink reload::
+
+    $ devlink dev reload auxiliary/mlx5_core.sf.1
+
+mlx5 supports ETH,rdma and vdpa (vnet) auxiliary devices devlink params (see :ref:`Documentation/networking/devlink/devlink-params.rst <devlink_params_generic>`).
 
 mlx5 supports subfunction management using devlink port (see :ref:`Documentation/networking/devlink/devlink-port.rst <devlink_port>`) interface.
 
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
  2023-06-22  5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
  2023-06-22  5:47 ` [net-next 02/15] net/mlx5: Fix SFs kernel documentation error Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable() Saeed Mahameed
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Lama Kayal,
	Rahul Rameshbabu

From: Lama Kayal <lkayal@nvidia.com>

A member of struct mlx5_ifc_cmd_hca_cap_bits has been mistakenly
assigned the wrong reserved_at offset value. Correct it to align to the
right value, thus avoid future miscalculation.

Signed-off-by: Lama Kayal <lkayal@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Rahul Rameshbabu <rrameshbabu@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 include/linux/mlx5/mlx5_ifc.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 354c7e326eab..33344a71c3e3 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -1710,9 +1710,9 @@ struct mlx5_ifc_cmd_hca_cap_bits {
 	u8         regexp_params[0x1];
 	u8         uar_sz[0x6];
 	u8         port_selection_cap[0x1];
-	u8         reserved_at_248[0x1];
+	u8         reserved_at_251[0x1];
 	u8         umem_uid_0[0x1];
-	u8         reserved_at_250[0x5];
+	u8         reserved_at_253[0x5];
 	u8         log_pg_sz[0x8];
 
 	u8         bf[0x1];
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable()
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (2 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported Saeed Mahameed
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Dan Carpenter, Kalesh AP

From: Dan Carpenter <dan.carpenter@linaro.org>

The mlx5_is_reset_now_capable() function returns bool, not negative
error codes.  So if fast teardown is not supported it should return
false instead of -EOPNOTSUPP.

Fixes: 92501fa6e421 ("net/mlx5: Ack on sync_reset_request only if PF can do reset_now")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
index 7af2b14ab5d8..fb7874da3caa 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/fw_reset.c
@@ -327,7 +327,7 @@ static bool mlx5_is_reset_now_capable(struct mlx5_core_dev *dev)
 
 	if (!MLX5_CAP_GEN(dev, fast_teardown)) {
 		mlx5_core_warn(dev, "fast teardown is not supported by firmware\n");
-		return -EOPNOTSUPP;
+		return false;
 	}
 
 	err = pci_read_config_word(dev->pdev, PCI_DEVICE_ID, &dev_id);
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (3 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable() Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules Saeed Mahameed
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

Remove duplicate function for checking if device has lag support.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../mellanox/mlx5/core/eswitch_offloads.c         |  4 ++--
 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c | 15 +++++++++++----
 drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h | 10 +---------
 3 files changed, 14 insertions(+), 15 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index fdf482f6fb34..9056b0b014f6 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2868,7 +2868,7 @@ void mlx5_esw_offloads_devcom_init(struct mlx5_eswitch *esw)
 	if (!MLX5_CAP_ESW(esw->dev, merged_eswitch))
 		return;
 
-	if (!mlx5_is_lag_supported(esw->dev))
+	if (!mlx5_lag_is_supported(esw->dev))
 		return;
 
 	mlx5_devcom_register_component(devcom,
@@ -2890,7 +2890,7 @@ void mlx5_esw_offloads_devcom_cleanup(struct mlx5_eswitch *esw)
 	if (!MLX5_CAP_ESW(esw->dev, merged_eswitch))
 		return;
 
-	if (!mlx5_is_lag_supported(esw->dev))
+	if (!mlx5_lag_is_supported(esw->dev))
 		return;
 
 	mlx5_devcom_send_event(devcom, MLX5_DEVCOM_ESW_OFFLOADS,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
index ffd7e17b8ebe..f0a074b2fcdf 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.c
@@ -1268,14 +1268,21 @@ void mlx5_lag_remove_mdev(struct mlx5_core_dev *dev)
 	mlx5_ldev_put(ldev);
 }
 
+bool mlx5_lag_is_supported(struct mlx5_core_dev *dev)
+{
+	if (!MLX5_CAP_GEN(dev, vport_group_manager) ||
+	    !MLX5_CAP_GEN(dev, lag_master) ||
+	    MLX5_CAP_GEN(dev, num_lag_ports) < 2 ||
+	    MLX5_CAP_GEN(dev, num_lag_ports) > MLX5_MAX_PORTS)
+		return false;
+	return true;
+}
+
 void mlx5_lag_add_mdev(struct mlx5_core_dev *dev)
 {
 	int err;
 
-	if (!MLX5_CAP_GEN(dev, vport_group_manager) ||
-	    !MLX5_CAP_GEN(dev, lag_master) ||
-	    (MLX5_CAP_GEN(dev, num_lag_ports) > MLX5_MAX_PORTS ||
-	     MLX5_CAP_GEN(dev, num_lag_ports) <= 1))
+	if (!mlx5_lag_is_supported(dev))
 		return;
 
 recheck:
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
index d7e7fa2348a5..a061b1873e27 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag/lag.h
@@ -74,15 +74,7 @@ struct mlx5_lag {
 	struct lag_mpesw	  lag_mpesw;
 };
 
-static inline bool mlx5_is_lag_supported(struct mlx5_core_dev *dev)
-{
-	if (!MLX5_CAP_GEN(dev, vport_group_manager) ||
-	    !MLX5_CAP_GEN(dev, lag_master) ||
-	    MLX5_CAP_GEN(dev, num_lag_ports) < 2 ||
-	    MLX5_CAP_GEN(dev, num_lag_ports) > MLX5_MAX_PORTS)
-		return false;
-	return true;
-}
+bool mlx5_lag_is_supported(struct mlx5_core_dev *dev);
 
 static inline struct mlx5_lag *
 mlx5_lag_dev(struct mlx5_core_dev *dev)
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (4 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf Saeed Mahameed
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

Device index is like PF index and limited to max physical ports.
For example, SFs created under PF the device index is the PF device index.
Use vhca_id which gets the FW index per vport, for vport rx rules
and vport pair events.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
index 965a8261c99b..152b62138450 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rep.c
@@ -408,7 +408,7 @@ static int mlx5e_sqs2vport_add_peers_rules(struct mlx5_eswitch *esw, struct mlx5
 
 	mlx5_devcom_for_each_peer_entry(devcom, MLX5_DEVCOM_ESW_OFFLOADS,
 					peer_esw, tmp) {
-		int peer_rule_idx = mlx5_get_dev_index(peer_esw->dev);
+		u16 peer_rule_idx = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
 		struct mlx5e_rep_sq_peer *sq_peer;
 		int err;
 
@@ -1581,7 +1581,7 @@ static void *mlx5e_vport_rep_get_proto_dev(struct mlx5_eswitch_rep *rep)
 static void mlx5e_vport_rep_event_unpair(struct mlx5_eswitch_rep *rep,
 					 struct mlx5_eswitch *peer_esw)
 {
-	int i = mlx5_get_dev_index(peer_esw->dev);
+	u16 i = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
 	struct mlx5e_rep_priv *rpriv;
 	struct mlx5e_rep_sq *rep_sq;
 
@@ -1603,7 +1603,7 @@ static int mlx5e_vport_rep_event_pair(struct mlx5_eswitch *esw,
 				      struct mlx5_eswitch_rep *rep,
 				      struct mlx5_eswitch *peer_esw)
 {
-	int i = mlx5_get_dev_index(peer_esw->dev);
+	u16 i = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
 	struct mlx5_flow_handle *flow_rule;
 	struct mlx5e_rep_sq_peer *sq_peer;
 	struct mlx5e_rep_priv *rpriv;
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (5 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index Saeed Mahameed
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

Add peer fdb rules for E-Switch that are vport managers or ecpf device.
It is not needed for other devices.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 9056b0b014f6..ed986d1c9e90 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -1069,6 +1069,9 @@ static int esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
 	void *misc;
 	int err;
 
+	if (!MLX5_VPORT_MANAGER(esw->dev) && !mlx5_core_is_ecpf_esw_manager(esw->dev))
+		return 0;
+
 	spec = kvzalloc(sizeof(*spec), GFP_KERNEL);
 	if (!spec)
 		return -ENOMEM;
@@ -1177,11 +1180,14 @@ static int esw_add_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
 static void esw_del_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
 					struct mlx5_core_dev *peer_dev)
 {
+	u16 peer_index = mlx5_get_dev_index(peer_dev);
 	struct mlx5_flow_handle **flows;
 	struct mlx5_vport *vport;
 	unsigned long i;
 
-	flows = esw->fdb_table.offloads.peer_miss_rules[mlx5_get_dev_index(peer_dev)];
+	flows = esw->fdb_table.offloads.peer_miss_rules[peer_index];
+	if (!flows)
+		return;
 
 	if (mlx5_core_ec_sriov_enabled(esw->dev)) {
 		mlx5_esw_for_each_ec_vf_vport(esw, i, vport, mlx5_core_max_ec_vfs(esw->dev)) {
@@ -1206,7 +1212,9 @@ static void esw_del_fdb_peer_miss_rules(struct mlx5_eswitch *esw,
 		vport = mlx5_eswitch_get_vport(esw, MLX5_VPORT_PF);
 		mlx5_del_flow_rules(flows[vport->index]);
 	}
+
 	kvfree(flows);
+	esw->fdb_table.offloads.peer_miss_rules[peer_index] = NULL;
 }
 
 static int esw_add_fdb_miss_rule(struct mlx5_eswitch *esw)
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (6 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0 Saeed Mahameed
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

To allow devcom events on E-Switch that is not a vport group manager,
use vhca id as an index instead of device index which might be shared
between several E-Switches. for example SF and its PF.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../net/ethernet/mellanox/mlx5/core/eswitch.h |  2 +-
 .../mellanox/mlx5/core/eswitch_offloads.c     | 30 +++++++++++++++----
 2 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
index 7064609f4998..ae0dc8a3060d 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.h
@@ -353,7 +353,7 @@ struct mlx5_eswitch {
 		u32             large_group_num;
 	}  params;
 	struct blocking_notifier_head n_head;
-	bool paired[MLX5_MAX_PORTS];
+	struct xarray paired;
 };
 
 void esw_offloads_disable(struct mlx5_eswitch *esw);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index ed986d1c9e90..6f3b7d5eb6a4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2807,15 +2807,21 @@ static int mlx5_esw_offloads_devcom_event(int event,
 	struct mlx5_eswitch *esw = my_data;
 	struct mlx5_devcom *devcom = esw->dev->priv.devcom;
 	struct mlx5_eswitch *peer_esw = event_data;
+	u16 esw_i, peer_esw_i;
+	bool esw_paired;
 	int err;
 
+	peer_esw_i = MLX5_CAP_GEN(peer_esw->dev, vhca_id);
+	esw_i = MLX5_CAP_GEN(esw->dev, vhca_id);
+	esw_paired = !!xa_load(&esw->paired, peer_esw_i);
+
 	switch (event) {
 	case ESW_OFFLOADS_DEVCOM_PAIR:
 		if (mlx5_eswitch_vport_match_metadata_enabled(esw) !=
 		    mlx5_eswitch_vport_match_metadata_enabled(peer_esw))
 			break;
 
-		if (esw->paired[mlx5_get_dev_index(peer_esw->dev)])
+		if (esw_paired)
 			break;
 
 		err = mlx5_esw_offloads_set_ns_peer(esw, peer_esw, true);
@@ -2829,23 +2835,29 @@ static int mlx5_esw_offloads_devcom_event(int event,
 		if (err)
 			goto err_pair;
 
-		esw->paired[mlx5_get_dev_index(peer_esw->dev)] = true;
-		peer_esw->paired[mlx5_get_dev_index(esw->dev)] = true;
+		err = xa_insert(&esw->paired, peer_esw_i, peer_esw, GFP_KERNEL);
+		if (err)
+			goto err_xa;
+
+		err = xa_insert(&peer_esw->paired, esw_i, esw, GFP_KERNEL);
+		if (err)
+			goto err_peer_xa;
+
 		esw->num_peers++;
 		peer_esw->num_peers++;
 		mlx5_devcom_comp_set_ready(devcom, MLX5_DEVCOM_ESW_OFFLOADS, true);
 		break;
 
 	case ESW_OFFLOADS_DEVCOM_UNPAIR:
-		if (!esw->paired[mlx5_get_dev_index(peer_esw->dev)])
+		if (!esw_paired)
 			break;
 
 		peer_esw->num_peers--;
 		esw->num_peers--;
 		if (!esw->num_peers && !peer_esw->num_peers)
 			mlx5_devcom_comp_set_ready(devcom, MLX5_DEVCOM_ESW_OFFLOADS, false);
-		esw->paired[mlx5_get_dev_index(peer_esw->dev)] = false;
-		peer_esw->paired[mlx5_get_dev_index(esw->dev)] = false;
+		xa_erase(&peer_esw->paired, esw_i);
+		xa_erase(&esw->paired, peer_esw_i);
 		mlx5_esw_offloads_unpair(peer_esw, esw);
 		mlx5_esw_offloads_unpair(esw, peer_esw);
 		mlx5_esw_offloads_set_ns_peer(esw, peer_esw, false);
@@ -2854,6 +2866,10 @@ static int mlx5_esw_offloads_devcom_event(int event,
 
 	return 0;
 
+err_peer_xa:
+	xa_erase(&esw->paired, peer_esw_i);
+err_xa:
+	mlx5_esw_offloads_unpair(peer_esw, esw);
 err_pair:
 	mlx5_esw_offloads_unpair(esw, peer_esw);
 err_peer:
@@ -2879,6 +2895,7 @@ void mlx5_esw_offloads_devcom_init(struct mlx5_eswitch *esw)
 	if (!mlx5_lag_is_supported(esw->dev))
 		return;
 
+	xa_init(&esw->paired);
 	mlx5_devcom_register_component(devcom,
 				       MLX5_DEVCOM_ESW_OFFLOADS,
 				       mlx5_esw_offloads_devcom_event,
@@ -2906,6 +2923,7 @@ void mlx5_esw_offloads_devcom_cleanup(struct mlx5_eswitch *esw)
 			       ESW_OFFLOADS_DEVCOM_UNPAIR, esw);
 
 	mlx5_devcom_unregister_component(devcom, MLX5_DEVCOM_ESW_OFFLOADS);
+	xa_destroy(&esw->paired);
 }
 
 bool mlx5_esw_vport_match_metadata_supported(const struct mlx5_eswitch *esw)
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (7 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 10/15] net/mlx5e: Remove redundant comment Saeed Mahameed
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

When creating flow table for shared fdb resources, there is
only need to pass other_vport flag if vport is not 0 or
if the port is ECPF in BlueField.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 .../net/ethernet/mellanox/mlx5/core/eswitch_offloads.c   | 9 ++++++---
 1 file changed, 6 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 6f3b7d5eb6a4..ee507b12e908 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2551,13 +2551,13 @@ static int __esw_set_master_egress_rule(struct mlx5_core_dev *master,
 	return err;
 }
 
-static int esw_master_egress_create_resources(struct mlx5_flow_namespace *egress_ns,
+static int esw_master_egress_create_resources(struct mlx5_eswitch *esw,
+					      struct mlx5_flow_namespace *egress_ns,
 					      struct mlx5_vport *vport, size_t count)
 {
 	int inlen = MLX5_ST_SZ_BYTES(create_flow_group_in);
 	struct mlx5_flow_table_attr ft_attr = {
 		.max_fte = count, .prio = 0, .level = 0,
-		.flags = MLX5_FLOW_TABLE_OTHER_VPORT,
 	};
 	struct mlx5_flow_table *acl;
 	struct mlx5_flow_group *g;
@@ -2572,6 +2572,9 @@ static int esw_master_egress_create_resources(struct mlx5_flow_namespace *egress
 	if (!flow_group_in)
 		return -ENOMEM;
 
+	if (vport->vport || mlx5_core_is_ecpf(esw->dev))
+		ft_attr.flags = MLX5_FLOW_TABLE_OTHER_VPORT;
+
 	acl = mlx5_create_vport_flow_table(egress_ns, &ft_attr, vport->vport);
 	if (IS_ERR(acl)) {
 		err = PTR_ERR(acl);
@@ -2642,7 +2645,7 @@ static int esw_set_master_egress_rule(struct mlx5_core_dev *master,
 	if (vport->egress.acl && vport->egress.type != VPORT_EGRESS_ACL_TYPE_SHARED_FDB)
 		return 0;
 
-	err = esw_master_egress_create_resources(egress_ns, vport, count);
+	err = esw_master_egress_create_resources(esw, egress_ns, vport, count);
 	if (err)
 		return err;
 
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 10/15] net/mlx5e: Remove redundant comment
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (8 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0 Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

The function comment says what it is and the comment
is redundant.

Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index ee507b12e908..612be82a8ad5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -1904,7 +1904,6 @@ static int esw_create_vport_rx_group(struct mlx5_eswitch *esw)
 	if (!flow_group_in)
 		return -ENOMEM;
 
-	/* create vport rx group */
 	mlx5_esw_set_flow_group_source_port(esw, flow_group_in, 0);
 
 	MLX5_SET(create_flow_group_in, flow_group_in, start_flow_index, 0);
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (9 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 10/15] net/mlx5e: Remove redundant comment Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-23  3:17   ` Jakub Kicinski
  2023-06-22  5:47 ` [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported() Saeed Mahameed
                   ` (3 subsequent siblings)
  14 siblings, 1 reply; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Roi Dayan, Shay Drory

From: Roi Dayan <roid@nvidia.com>

On error flow resources being freed in esw_master_egress_destroy_resources()
but pointers not being set to null if error flow is from creating a
bounce rule. Then in esw_acl_egress_ofld_cleanup() we try to access already
freed pointers. Fix it by resetting the pointers to null.
Also if error is from creating a second or later bounce rule then the
flow group and table being used and cannot and should not be freed.
Add a check to destroy the flow group and table if there are no bounce
rules.

mlx5_core.sf mlx5_core.sf.2: mlx5_destroy_flow_group:2306:(pid 2235): Flow group 4 wasn't destroyed, refcount > 1
mlx5_core.sf mlx5_core.sf.2: mlx5_destroy_flow_table:2295:(pid 2235): Flow table 3 wasn't destroyed, refcount > 1

Fixes: 6704fef92002 ("net/mlx5: E-switch, Handle multiple master egress rules")
Signed-off-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
index 612be82a8ad5..cf58295ad7e2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -2618,8 +2618,12 @@ static int esw_master_egress_create_resources(struct mlx5_eswitch *esw,
 
 static void esw_master_egress_destroy_resources(struct mlx5_vport *vport)
 {
+	if (!xa_empty(&vport->egress.offloads.bounce_rules))
+		return;
 	mlx5_destroy_flow_group(vport->egress.offloads.bounce_grp);
+	vport->egress.offloads.bounce_grp = NULL;
 	mlx5_destroy_flow_table(vport->egress.acl);
+	vport->egress.acl = NULL;
 }
 
 static int esw_set_master_egress_rule(struct mlx5_core_dev *master,
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported()
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (10 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() " Saeed Mahameed
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory

From: Jiri Pirko <jiri@nvidia.com>

MLX5_ESWITCH_MANAGER() check is done in is_eth_rep_supported().
Function is_ib_rep_supported() calls is_eth_rep_supported().
Remove the redundant check from it.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/dev.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
index 617ac7e5d75c..3b1e925f16d2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
@@ -151,9 +151,6 @@ static bool is_ib_rep_supported(struct mlx5_core_dev *dev)
 	if (!is_eth_rep_supported(dev))
 		return false;
 
-	if (!MLX5_ESWITCH_MANAGER(dev))
-		return false;
-
 	if (!is_mdev_switchdev_mode(dev))
 		return false;
 
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() check from is_ib_rep_supported()
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (11 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported() Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id() Saeed Mahameed
  2023-06-22  5:47 ` [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() Saeed Mahameed
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory

From: Jiri Pirko <jiri@nvidia.com>

is_mdev_switchdev_mode() check is done in is_eth_rep_supported().
Function is_ib_rep_supported() calls is_eth_rep_supported().
Remove the redundant check from it.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/dev.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dev.c b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
index 3b1e925f16d2..edb06fb9bbc5 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/dev.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/dev.c
@@ -151,9 +151,6 @@ static bool is_ib_rep_supported(struct mlx5_core_dev *dev)
 	if (!is_eth_rep_supported(dev))
 		return false;
 
-	if (!is_mdev_switchdev_mode(dev))
-		return false;
-
 	if (mlx5_core_mp_enabled(dev))
 		return false;
 
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id()
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (12 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() " Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  2023-06-22  5:47 ` [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() Saeed Mahameed
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory

From: Jiri Pirko <jiri@nvidia.com>

Since mlx5_esw_query_vport_vhca_id() could be called either from
mlx5_esw_vport_enable() or mlx5_esw_vport_disable() where the
the check is done, this is always false here.
Remove the redundant check.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 3 ---
 1 file changed, 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 cf58295ad7e2..bdfe609cc9ec 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c
@@ -3961,9 +3961,6 @@ static int mlx5_esw_query_vport_vhca_id(struct mlx5_eswitch *esw, u16 vport_num,
 	int err;
 
 	*vhca_id = 0;
-	if (mlx5_esw_is_manager_vport(esw, vport_num) ||
-	    !MLX5_CAP_GEN(esw->dev, vhca_resource_manager))
-		return -EPERM;
 
 	query_ctx = kzalloc(query_out_sz, GFP_KERNEL);
 	if (!query_ctx)
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type()
  2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
                   ` (13 preceding siblings ...)
  2023-06-22  5:47 ` [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id() Saeed Mahameed
@ 2023-06-22  5:47 ` Saeed Mahameed
  14 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-22  5:47 UTC (permalink / raw)
  To: David S. Miller, Jakub Kicinski, Paolo Abeni, Eric Dumazet
  Cc: Saeed Mahameed, netdev, Tariq Toukan, Jiri Pirko, Shay Drory

From: Jiri Pirko <jiri@nvidia.com>

As xa_get_mark() returns false in case the entry is not present,
no need to redundantly check if vport is present. Remove the lookup.

Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Shay Drory <shayd@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index b4e465856127..faec7d7a4400 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -1908,12 +1908,6 @@ int mlx5_eswitch_set_vport_mac(struct mlx5_eswitch *esw,
 
 static bool mlx5_esw_check_port_type(struct mlx5_eswitch *esw, u16 vport_num, xa_mark_t mark)
 {
-	struct mlx5_vport *vport;
-
-	vport = mlx5_eswitch_get_vport(esw, vport_num);
-	if (IS_ERR(vport))
-		return false;
-
 	return xa_get_mark(&esw->vports, vport_num, mark);
 }
 
-- 
2.41.0


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow
  2023-06-22  5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
@ 2023-06-23  3:17   ` Jakub Kicinski
  2023-06-23 19:22     ` Saeed Mahameed
  0 siblings, 1 reply; 18+ messages in thread
From: Jakub Kicinski @ 2023-06-23  3:17 UTC (permalink / raw)
  To: Saeed Mahameed
  Cc: David S. Miller, Paolo Abeni, Eric Dumazet, Saeed Mahameed,
	netdev, Tariq Toukan, Roi Dayan, Shay Drory

On Wed, 21 Jun 2023 22:47:31 -0700 Saeed Mahameed wrote:
> Fixes: 6704fef92002 ("net/mlx5: E-switch, Handle multiple master egress rules")

hash should be 5e0202eb49ed on this one, could you fix that up?
patches themselves LG
-- 
pw-bot: cr

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow
  2023-06-23  3:17   ` Jakub Kicinski
@ 2023-06-23 19:22     ` Saeed Mahameed
  0 siblings, 0 replies; 18+ messages in thread
From: Saeed Mahameed @ 2023-06-23 19:22 UTC (permalink / raw)
  To: Jakub Kicinski
  Cc: David S. Miller, Paolo Abeni, Eric Dumazet, Saeed Mahameed,
	netdev, Tariq Toukan, Roi Dayan, Shay Drory

On 22 Jun 20:17, Jakub Kicinski wrote:
>On Wed, 21 Jun 2023 22:47:31 -0700 Saeed Mahameed wrote:
>> Fixes: 6704fef92002 ("net/mlx5: E-switch, Handle multiple master egress rules")
>
>hash should be 5e0202eb49ed on this one, could you fix that up?
>patches themselves LG

Ack, let me handle this..

Thanks!

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2023-06-23 19:22 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-22  5:47 [pull request][net-next 00/15] mlx5 updates 2023-06-21 Saeed Mahameed
2023-06-22  5:47 ` [net-next 01/15] net/mlx5: Fix UAF in mlx5_eswitch_cleanup() Saeed Mahameed
2023-06-22  5:47 ` [net-next 02/15] net/mlx5: Fix SFs kernel documentation error Saeed Mahameed
2023-06-22  5:47 ` [net-next 03/15] net/mlx5: Fix reserved at offset in hca_cap register Saeed Mahameed
2023-06-22  5:47 ` [net-next 04/15] net/mlx5: Fix error code in mlx5_is_reset_now_capable() Saeed Mahameed
2023-06-22  5:47 ` [net-next 05/15] net/mlx5: Lag, Remove duplicate code checking lag is supported Saeed Mahameed
2023-06-22  5:47 ` [net-next 06/15] net/mlx5e: Use vhca_id for device index in vport rx rules Saeed Mahameed
2023-06-22  5:47 ` [net-next 07/15] net/mlx5e: E-Switch, Add peer fdb miss rules for vport manager or ecpf Saeed Mahameed
2023-06-22  5:47 ` [net-next 08/15] net/mlx5e: E-Switch, Use xarray for devcom paired device index Saeed Mahameed
2023-06-22  5:47 ` [net-next 09/15] net/mlx5e: E-Switch, Pass other_vport flag if vport is not 0 Saeed Mahameed
2023-06-22  5:47 ` [net-next 10/15] net/mlx5e: Remove redundant comment Saeed Mahameed
2023-06-22  5:47 ` [net-next 11/15] net/mlx5e: E-Switch, Fix shared fdb error flow Saeed Mahameed
2023-06-23  3:17   ` Jakub Kicinski
2023-06-23 19:22     ` Saeed Mahameed
2023-06-22  5:47 ` [net-next 12/15] net/mlx5: Remove redundant MLX5_ESWITCH_MANAGER() check from is_ib_rep_supported() Saeed Mahameed
2023-06-22  5:47 ` [net-next 13/15] net/mlx5: Remove redundant is_mdev_switchdev_mode() " Saeed Mahameed
2023-06-22  5:47 ` [net-next 14/15] net/mlx5: Remove redundant check from mlx5_esw_query_vport_vhca_id() Saeed Mahameed
2023-06-22  5:47 ` [net-next 15/15] net/mlx5: Remove pointless vport lookup from mlx5_esw_check_port_type() Saeed Mahameed

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).