On 1/28/19 11:26 PM, Amit Kucheria wrote: > On Mon, Dec 24, 2018 at 11:52 AM Gustavo A. R. Silva > <gustavo@xxxxxxxxxxxxxx> 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 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. >> >> Signed-off-by: Gustavo A. R. Silva <gustavo@xxxxxxxxxxxxxx> > > Reviewed-by: Amit Kucheria <amit.kucheria@xxxxxxxxxx> > Thanks, Amit. -- Gustavo >> --- >> drivers/soc/qcom/rpmh.c | 3 +-- >> 1 file changed, 1 insertion(+), 2 deletions(-) >> >> diff --git a/drivers/soc/qcom/rpmh.c b/drivers/soc/qcom/rpmh.c >> index c7beb6841289..12c057a0b325 100644 >> --- a/drivers/soc/qcom/rpmh.c >> +++ b/drivers/soc/qcom/rpmh.c >> @@ -362,8 +362,7 @@ int rpmh_write_batch(const struct device *dev, enum rpmh_state state, >> if (!count) >> return -EINVAL; >> >> - req = kzalloc(sizeof(*req) + count * sizeof(req->rpm_msgs[0]), >> - GFP_ATOMIC); >> + req = kzalloc(struct_size(req, rpm_msgs, count), GFP_ATOMIC); >> if (!req) >> return -ENOMEM; >> req->count = count; >> -- >> 2.17.0 >>