net/mlx5: E-Switch, Return eswitch max ports when eswitch is supported
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>
This commit is contained in:
parent
b2f0ca00e6
commit
06ec5acc77
|
@ -2205,3 +2205,16 @@ void mlx5_esw_unlock(struct mlx5_eswitch *esw)
|
||||||
{
|
{
|
||||||
up_write(&esw->mode_lock);
|
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);
|
||||||
|
|
|
@ -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);
|
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)
|
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);
|
u16 opmod = (MLX5_CAP_GENERAL << 1) | (HCA_CAP_OPMOD_GET_MAX & 0x01);
|
||||||
|
|
|
@ -65,8 +65,6 @@ struct mlx5_flow_handle *
|
||||||
mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw,
|
mlx5_eswitch_add_send_to_vport_rule(struct mlx5_eswitch *on_esw,
|
||||||
struct mlx5_eswitch_rep *rep, u32 sqn);
|
struct mlx5_eswitch_rep *rep, u32 sqn);
|
||||||
|
|
||||||
u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev);
|
|
||||||
|
|
||||||
#ifdef CONFIG_MLX5_ESWITCH
|
#ifdef CONFIG_MLX5_ESWITCH
|
||||||
enum devlink_eswitch_encap_mode
|
enum devlink_eswitch_encap_mode
|
||||||
mlx5_eswitch_get_encap_mode(const struct mlx5_core_dev *dev);
|
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
|
#define ESW_TUN_SLOW_TABLE_GOTO_VPORT_MARK ESW_TUN_OPTS_MASK
|
||||||
|
|
||||||
u8 mlx5_eswitch_mode(struct mlx5_core_dev *dev);
|
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 */
|
#else /* CONFIG_MLX5_ESWITCH */
|
||||||
|
|
||||||
static inline u8 mlx5_eswitch_mode(struct mlx5_core_dev *dev)
|
static inline u8 mlx5_eswitch_mode(struct mlx5_core_dev *dev)
|
||||||
|
@ -162,10 +162,17 @@ mlx5_eswitch_get_vport_metadata_mask(void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline u16 mlx5_eswitch_get_total_vports(const struct mlx5_core_dev *dev)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* CONFIG_MLX5_ESWITCH */
|
#endif /* CONFIG_MLX5_ESWITCH */
|
||||||
|
|
||||||
static inline bool is_mdev_switchdev_mode(struct mlx5_core_dev *dev)
|
static inline bool is_mdev_switchdev_mode(struct mlx5_core_dev *dev)
|
||||||
{
|
{
|
||||||
return mlx5_eswitch_mode(dev) == MLX5_ESWITCH_OFFLOADS;
|
return mlx5_eswitch_mode(dev) == MLX5_ESWITCH_OFFLOADS;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue