mlxsw: spectrum_acl_bloom_filter: use struct_size() in kzalloc()
Subsystems (3)
PATCH 1/1 mlxsw: spectrum_acl_bloom_filter: use struct_size() in kzalloc()
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo {
int stuff;
void *entry[];
};instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);
Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper:
instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL);
This issue was detected with the help of Coccinelle.
--- .../net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_bloom_filter.c +2 -2
@@ -234,8 +234,8 @@ mlxsw_sp_acl_bf_init(struct mlxsw_sp *mlxsw_sp, unsigned int num_erp_banks)* is 2^ACL_MAX_BF_LOG */ bf_bank_size =1 <<MLXSW_CORE_RES_GET (mlxsw_sp->core,ACL_MAX_BF_LOG ); - bf =kzalloc (sizeof (*bf) + bf_bank_size * num_erp_banks * -sizeof (*bf->refcnt),GFP_KERNEL ); + bf =kzalloc (struct_size (bf, refcnt, bf_bank_size * num_erp_banks), +GFP_KERNEL );if (!bf)return ERR_PTR (-ENOMEM );
Signature · 1 line
2.17.0
From: "Gustavo A. R. Silva" <[email protected]>
Date: Tue, 15 Jan 2019 17:05:39 -0600
Quoted 14 lines
One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example:
struct foo { int stuff; void *entry[]; };instance =
kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL);Instead of leaving these open-coded and prone to type mistakes, we can now use the new
struct_size()helper:
Quoted 6 lines
instance =
kzalloc(struct_size(instance, entry, count), GFP_KERNEL);This issue was detected with the help of Coccinelle.
Reviewed-by Ido Schimmel <[email protected]>Signed-off-by Gustavo A. R. Silva <[email protected]>
Applied.