Message ID | 20210424080115.97273-2-saeed@kernel.org |
---|---|
State | New |
Headers | show |
Series | mlx5 External sub function controller | expand |
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 --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