Hi all, Friendly ping:
Who can take this, please? Thanks -- Gustavo On 6/10/19 4:06 PM, Gustavo A. R. Silva wrote: > 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 nd_region { > ... > struct nd_mapping mapping[0]; > }; > > instance = kzalloc(sizeof(struct nd_region) + sizeof(struct nd_mapping) * > 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, mapping, count), GFP_KERNEL); > > This code was detected with the help of Coccinelle. > > Signed-off-by: Gustavo A. R. Silva <gust...@embeddedor.com> > --- > drivers/nvdimm/region_devs.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/nvdimm/region_devs.c b/drivers/nvdimm/region_devs.c > index b4ef7d9ff22e..88becc87e234 100644 > --- a/drivers/nvdimm/region_devs.c > +++ b/drivers/nvdimm/region_devs.c > @@ -1027,10 +1027,9 @@ static struct nd_region *nd_region_create(struct > nvdimm_bus *nvdimm_bus, > } > region_buf = ndbr; > } else { > - nd_region = kzalloc(sizeof(struct nd_region) > - + sizeof(struct nd_mapping) > - * ndr_desc->num_mappings, > - GFP_KERNEL); > + nd_region = kzalloc(struct_size(nd_region, mapping, > + ndr_desc->num_mappings), > + GFP_KERNEL); > region_buf = nd_region; > } > >