path: root/mm/percpu.c
diff options
authorGustavo A. R. Silva <>2019-08-29 14:06:05 -0500
committerDennis Zhou <>2019-09-04 13:40:49 -0700
commit14d3761245551bdfc516abd8214a9f76bfd51435 (patch)
tree3dc48f37789de59f6ff352b50728a2169574b93d /mm/percpu.c
parent69ab285b682328ef7622f0567f8afebb00b404f3 (diff)
percpu: Use struct_size() helper
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 pcpu_alloc_info { ... struct pcpu_group_info groups[]; }; Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes. So, replace the following form: sizeof(*ai) + nr_groups * sizeof(ai->groups[0]) with: struct_size(ai, groups, nr_groups) This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <> Signed-off-by: Dennis Zhou <>
Diffstat (limited to 'mm/percpu.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/percpu.c b/mm/percpu.c
index 7e2aa0305c27..7e06a1e58720 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -2125,7 +2125,7 @@ struct pcpu_alloc_info * __init pcpu_alloc_alloc_info(int nr_groups,
void *ptr;
int unit;
- base_size = ALIGN(sizeof(*ai) + nr_groups * sizeof(ai->groups[0]),
+ base_size = ALIGN(struct_size(ai, groups, nr_groups),
ai_size = base_size + nr_units * sizeof(ai->groups[0].cpu_map[0]);