forked from luck/tmp_suning_uos_patched
mlxsw: spectrum_cnt: Use flex_array_size() helper in memcpy()
Make use of the flex_array_size() helper to calculate the size of a flexible array member within an enclosing structure. This helper offers defense-in-depth against potential integer overflows, while at the same time makes it explicitly clear that we are dealing witha flexible array member. Also, remove unnecessary pointer identifier sub_pool. Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Reviewed-by: Ido Schimmel <idosch@mellanox.com> Tested-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b04e55d641
commit
10470c0d7e
|
@ -121,7 +121,6 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)
|
|||
{
|
||||
unsigned int sub_pools_count = ARRAY_SIZE(mlxsw_sp_counter_sub_pools);
|
||||
struct devlink *devlink = priv_to_devlink(mlxsw_sp->core);
|
||||
struct mlxsw_sp_counter_sub_pool *sub_pool;
|
||||
struct mlxsw_sp_counter_pool *pool;
|
||||
unsigned int map_size;
|
||||
int err;
|
||||
|
@ -131,9 +130,9 @@ int mlxsw_sp_counter_pool_init(struct mlxsw_sp *mlxsw_sp)
|
|||
if (!pool)
|
||||
return -ENOMEM;
|
||||
mlxsw_sp->counter_pool = pool;
|
||||
memcpy(pool->sub_pools, mlxsw_sp_counter_sub_pools,
|
||||
sub_pools_count * sizeof(*sub_pool));
|
||||
pool->sub_pools_count = sub_pools_count;
|
||||
memcpy(pool->sub_pools, mlxsw_sp_counter_sub_pools,
|
||||
flex_array_size(pool, sub_pools, pool->sub_pools_count));
|
||||
spin_lock_init(&pool->counter_pool_lock);
|
||||
atomic_set(&pool->active_entries_count, 0);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user