Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux

Tariq Toukan says:

====================
mlx5-next updates 2025-02-24

The following pull-request contains common mlx5 updates
for your *net-next* tree.

* 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux:
net/mlx5: Change POOL_NEXT_SIZE define value and make it global
net/mlx5: Add new health syndrome error and crr bit offset
====================

Link: https://patch.msgid.link/20250224212446.523259-1-tariqt@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

+11 -6
+1 -1
drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c
··· 96 96 if (!flow_group_in) 97 97 return -ENOMEM; 98 98 99 - ft_attr.max_fte = POOL_NEXT_SIZE; 99 + ft_attr.max_fte = MLX5_FS_MAX_POOL_SIZE; 100 100 ft_attr.prio = LEGACY_FDB_PRIO; 101 101 fdb = mlx5_create_flow_table(root_ns, &ft_attr); 102 102 if (IS_ERR(fdb)) {
+4 -2
drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c
··· 50 50 int i, found_i = -1; 51 51 52 52 for (i = ARRAY_SIZE(FT_POOLS) - 1; i >= 0; i--) { 53 - if (dev->priv.ft_pool->ft_left[i] && FT_POOLS[i] >= desired_size && 53 + if (dev->priv.ft_pool->ft_left[i] && 54 + (FT_POOLS[i] >= desired_size || 55 + desired_size == MLX5_FS_MAX_POOL_SIZE) && 54 56 FT_POOLS[i] <= max_ft_size) { 55 57 found_i = i; 56 - if (desired_size != POOL_NEXT_SIZE) 58 + if (desired_size != MLX5_FS_MAX_POOL_SIZE) 57 59 break; 58 60 } 59 61 }
-2
drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.h
··· 7 7 #include <linux/mlx5/driver.h> 8 8 #include "fs_core.h" 9 9 10 - #define POOL_NEXT_SIZE 0 11 - 12 10 int mlx5_ft_pool_init(struct mlx5_core_dev *dev); 13 11 void mlx5_ft_pool_destroy(struct mlx5_core_dev *dev); 14 12
+2 -1
drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c
··· 161 161 ft_attr.flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT | 162 162 MLX5_FLOW_TABLE_TUNNEL_EN_DECAP); 163 163 164 - sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? FT_TBL_SZ : POOL_NEXT_SIZE; 164 + sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? 165 + FT_TBL_SZ : MLX5_FS_MAX_POOL_SIZE; 165 166 ft_attr.max_fte = sz; 166 167 167 168 /* We use chains_default_ft(chains) as the table's next_ft till
+1
include/linux/mlx5/device.h
··· 538 538 }; 539 539 540 540 enum mlx5_rfr_severity_bit_offsets { 541 + MLX5_CRR_BIT_OFFSET = 0x6, 541 542 MLX5_RFR_BIT_OFFSET = 0x7, 542 543 }; 543 544
+2
include/linux/mlx5/fs.h
··· 40 40 41 41 #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v) 42 42 43 + #define MLX5_FS_MAX_POOL_SIZE BIT(30) 44 + 43 45 enum mlx5_flow_destination_type { 44 46 MLX5_FLOW_DESTINATION_TYPE_NONE, 45 47 MLX5_FLOW_DESTINATION_TYPE_VPORT,
+1
include/linux/mlx5/mlx5_ifc.h
··· 11119 11119 MLX5_INITIAL_SEG_HEALTH_SYNDROME_FFSER_ERR = 0xf, 11120 11120 MLX5_INITIAL_SEG_HEALTH_SYNDROME_HIGH_TEMP_ERR = 0x10, 11121 11121 MLX5_INITIAL_SEG_HEALTH_SYNDROME_ICM_PCI_POISONED_ERR = 0x12, 11122 + MLX5_INITIAL_SEG_HEALTH_SYNDROME_TRUST_LOCKDOWN_ERR = 0x13, 11122 11123 }; 11123 11124 11124 11125 struct mlx5_ifc_initial_seg_bits {