On Wed, Dec 11, 2024 at 03:42:16PM +0200, Tariq Toukan wrote: > From: Moshe Shemesh <moshe@xxxxxxxxxx> > > Refactor fc_pool API to create generic fs_pool API, as HW steering has > more flow steering elements which can take advantage of the same pool of > bulks API. Change fs_counters code to use the fs_pool API. > > Signed-off-by: Moshe Shemesh <moshe@xxxxxxxxxx> > Reviewed-by: Yevgeny Kliteynik <kliteyn@xxxxxxxxxx> > Reviewed-by: Mark Bloch <mbloch@xxxxxxxxxx> > Signed-off-by: Tariq Toukan <tariqt@xxxxxxxxxx> ... > diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c ... > @@ -447,11 +437,9 @@ void mlx5_fc_update_sampling_interval(struct mlx5_core_dev *dev, > /* Flow counter bluks */ > > struct mlx5_fc_bulk { > - struct list_head pool_list; > + struct mlx5_fs_bulk fs_bulk; > u32 base_id; > - int bulk_len; > - unsigned long *bitmask; > - struct mlx5_fc fcs[] __counted_by(bulk_len); > + struct mlx5_fc fcs[] __counted_by(fs_bulk.bulk_len); > }; Unfortunately it seems that clang-19 doesn't know how to handle __counted_by() when used like this: drivers/net/ethernet/mellanox/mlx5/core/fs_counters.c:442:36: error: 'counted_by' argument must be a simple declaration reference 442 | struct mlx5_fc fcs[] __counted_by(fs_bulk.bulk_len); | ^~~~~~~~~~~~~~~~ ././include/linux/compiler_types.h:346:62: note: expanded from macro '__counted_by' 346 | # define __counted_by(member) __attribute__((__counted_by__(member))) | ^~~~~~ ...