diff mbox series

[net-next,V2,01/11] net/mlx5: E-Switch, Return eswitch max ports when eswitch is supported

Message ID 20210424080115.97273-2-saeed@kernel.org
State New
Headers show
Series mlx5 External sub function controller | expand

Commit Message

Saeed Mahameed April 24, 2021, 8:01 a.m. UTC
From: Parav Pandit <parav@nvidia.com>

mlx5_eswitch_get_total_vports() doesn't honor MLX5_ESWICH Kconfig flag.

When MLX5_ESWITCH is disabled, FS layer continues to initialize eswitch
specific ACL namespaces.
Instead, start honoring MLX5_ESWITCH flag and perform vport specific
initialization only when vport count is non zero.

Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Roi Dayan <roid@nvidia.com>
Reviewed-by: Vu Pham <vuhuong@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
---
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 13 +++++++++++++
 drivers/net/ethernet/mellanox/mlx5/core/vport.c   | 14 --------------
 include/linux/mlx5/eswitch.h                      | 11 +++++++++--
 3 files changed, 22 insertions(+), 16 deletions(-)

Comments

patchwork-bot+netdevbpf@kernel.org April 26, 2021, 1:40 a.m. UTC | #1
Hello:

This series was applied to netdev/net-next.git (refs/heads/master):

On Sat, 24 Apr 2021 01:01:05 -0700 you wrote:
> From: Parav Pandit <parav@nvidia.com>

> 

> mlx5_eswitch_get_total_vports() doesn't honor MLX5_ESWICH Kconfig flag.

> 

> When MLX5_ESWITCH is disabled, FS layer continues to initialize eswitch

> specific ACL namespaces.

> Instead, start honoring MLX5_ESWITCH flag and perform vport specific

> initialization only when vport count is non zero.

> 

> [...]


Here is the summary with links:
  - [net-next,V2,01/11] net/mlx5: E-Switch, Return eswitch max ports when eswitch is supported
    https://git.kernel.org/netdev/net-next/c/06ec5acc7747
  - [net-next,V2,02/11] net/mlx5: E-Switch, Prepare to return total vports from eswitch struct
    https://git.kernel.org/netdev/net-next/c/9f8c7100c8f9
  - [net-next,V2,03/11] net/mlx5: E-Switch, Use xarray for vport number to vport and rep mapping
    https://git.kernel.org/netdev/net-next/c/47dd7e609f69
  - [net-next,V2,04/11] net/mlx5: E-Switch, Consider SF ports of host PF
    https://git.kernel.org/netdev/net-next/c/87bd418ea751
  - [net-next,V2,05/11] net/mlx5: SF, Rely on hw table for SF devlink port allocation
    https://git.kernel.org/netdev/net-next/c/1d7979352f9f
  - [net-next,V2,06/11] devlink: Extend SF port attributes to have external attribute
    https://git.kernel.org/netdev/net-next/c/a1ab3e4554b5
  - [net-next,V2,07/11] net/mlx5: SF, Store and use start function id
    https://git.kernel.org/netdev/net-next/c/7e6ccbc18784
  - [net-next,V2,08/11] net/mlx5: SF, Consider own vhca events of SF devices
    https://git.kernel.org/netdev/net-next/c/326c08a02034
  - [net-next,V2,09/11] net/mlx5: SF, Use helpers for allocation and free
    https://git.kernel.org/netdev/net-next/c/01ed9550e8b4
  - [net-next,V2,10/11] net/mlx5: SF, Split mlx5_sf_hw_table into two parts
    https://git.kernel.org/netdev/net-next/c/a3088f87d984
  - [net-next,V2,11/11] net/mlx5: SF, Extend SF table for additional SF id range
    https://git.kernel.org/netdev/net-next/c/f1b9acd3a5e8

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
diff mbox series

Patch

diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index 1bb229ecd43b..c3a58224ae12 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -2205,3 +2205,16 @@  void mlx5_esw_unlock(struct mlx5_eswitch *esw)
 {
 	up_write(&esw->mode_lock);
 }
+
+/**
+ * mlx5_eswitch_get_total_vports - Get total vports of the eswitch
+ *
+ * @dev: Pointer to core device
+ *
+ * mlx5_eswitch_get_total_vports returns total number of eswitch vports.
+ */
+u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev)
+{
+	return MLX5_SPECIAL_VPORTS(dev) + mlx5_core_max_vfs(dev) + mlx5_sf_max_functions(dev);
+}
+EXPORT_SYMBOL_GPL(mlx5_eswitch_get_total_vports);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/vport.c b/drivers/net/ethernet/mellanox/mlx5/core/vport.c
index e05c5c0f3ae1..457ad42eaa2a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/vport.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/vport.c
@@ -1151,20 +1151,6 @@  u64 mlx5_query_nic_system_image_guid(struct mlx5_core_dev *mdev)
 }
 EXPORT_SYMBOL_GPL(mlx5_query_nic_system_image_guid);
 
-/**
- * mlx5_eswitch_get_total_vports - Get total vports of the eswitch
- *
- * @dev:	Pointer to core device
- *
- * mlx5_eswitch_get_total_vports returns total number of vports for
- * the eswitch.
- */
-u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev)
-{
-	return MLX5_SPECIAL_VPORTS(dev) + mlx5_core_max_vfs(dev) + mlx5_sf_max_functions(dev);
-}
-EXPORT_SYMBOL_GPL(mlx5_eswitch_get_total_vports);
-
 int mlx5_vport_get_other_func_cap(struct mlx5_core_dev *dev, u16 function_id, void *out)
 {
 	u16 opmod = (MLX5_CAP_GENERAL << 1) | (HCA_CAP_OPMOD_GET_MAX & 0x01);
diff --git a/include/linux/mlx5/eswitch.h b/include/linux/mlx5/eswitch.h
index 9cf1da2883c6..17109b65c1ac 100644
--- a/include/linux/mlx5/eswitch.h
+++ b/include/linux/mlx5/eswitch.h
@@ -65,8 +65,6 @@  struct mlx5_flow_handle *
 mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw,
 				    struct mlx5_eswitch_rep *rep, u32 sqn);
 
-u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev);
-
 #ifdef CONFIG_MLX5_ESWITCH
 enum devlink_eswitch_encap_mode
 mlx5_eswitch_get_encap_mode(const struct mlx5_core_dev *dev);
@@ -126,6 +124,8 @@  u32 mlx5_eswitch_get_vport_metadata_for_set(struct mlx5_eswitch *esw,
 #define ESW_TUN_SLOW_TABLE_GOTO_VPORT_MARK ESW_TUN_OPTS_MASK
 
 u8 mlx5_eswitch_mode(struct mlx5_core_dev *dev);
+u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev);
+
 #else  /* CONFIG_MLX5_ESWITCH */
 
 static inline u8 mlx5_eswitch_mode(struct mlx5_core_dev *dev)
@@ -162,10 +162,17 @@  mlx5_eswitch_get_vport_metadata_mask(void)
 {
 	return 0;
 }
+
+static inline u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev)
+{
+	return 0;
+}
+
 #endif /* CONFIG_MLX5_ESWITCH */
 
 static inline bool is_mdev_switchdev_mode(struct mlx5_core_dev *dev)
 {
 	return mlx5_eswitch_mode(dev) == MLX5_ESWITCH_OFFLOADS;
 }
+
 #endif