* [PATCH] video: fbdev/mmp/core: Use struct_size() in kzalloc() @ 2019-08-07 16:13 ` Gustavo A. R. Silva 2019-08-19 14:10 ` Bartlomiej Zolnierkiewicz 0 siblings, 1 reply; 2+ messages in thread From: Gustavo A. R. Silva @ 2019-08-07 16:13 UTC (permalink / raw) To: Bartlomiej Zolnierkiewicz Cc: dri-devel, linux-fbdev, linux-kernel, Gustavo A. R. Silva 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 mmp_path { ... struct mmp_overlay overlays[0]; }; size = sizeof(struct mmp_path) + count * sizeof(struct mmp_overlay); instance = kzalloc(size, 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, overlays, count), GFP_KERNEL) Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> --- drivers/video/fbdev/mmp/core.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/video/fbdev/mmp/core.c b/drivers/video/fbdev/mmp/core.c index 0ffc1b7b7052..154127256a2c 100644 --- a/drivers/video/fbdev/mmp/core.c +++ b/drivers/video/fbdev/mmp/core.c @@ -153,13 +153,11 @@ EXPORT_SYMBOL_GPL(mmp_get_path); struct mmp_path *mmp_register_path(struct mmp_path_info *info) { int i; - size_t size; struct mmp_path *path = NULL; struct mmp_panel *panel; - size = sizeof(struct mmp_path) - + sizeof(struct mmp_overlay) * info->overlay_num; - path = kzalloc(size, GFP_KERNEL); + path = kzalloc(struct_size(path, overlays, info->overlay_num), + GFP_KERNEL); if (!path) return NULL; -- 2.22.0 ^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] video: fbdev/mmp/core: Use struct_size() in kzalloc() 2019-08-07 16:13 ` [PATCH] video: fbdev/mmp/core: Use struct_size() in kzalloc() Gustavo A. R. Silva @ 2019-08-19 14:10 ` Bartlomiej Zolnierkiewicz 0 siblings, 0 replies; 2+ messages in thread From: Bartlomiej Zolnierkiewicz @ 2019-08-19 14:10 UTC (permalink / raw) To: Gustavo A. R. Silva; +Cc: dri-devel, linux-fbdev, linux-kernel On 8/7/19 6:13 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 mmp_path { > ... > struct mmp_overlay overlays[0]; > }; > > size = sizeof(struct mmp_path) + count * sizeof(struct mmp_overlay); > instance = kzalloc(size, 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, overlays, count), GFP_KERNEL) > > Notice that, in this case, variable size is not necessary, hence it > is removed. > > This code was detected with the help of Coccinelle. > > Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Patch queued for v5.4, thanks. Best regards, -- Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2019-08-19 14:10 UTC | newest] Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <CGME20190807161320epcas2p1457bd16d94c3f746543130153a472696@epcas2p1.samsung.com> 2019-08-07 16:13 ` [PATCH] video: fbdev/mmp/core: Use struct_size() in kzalloc() Gustavo A. R. Silva 2019-08-19 14:10 ` Bartlomiej Zolnierkiewicz
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).