aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/mm/percpu.c
diff options
context:
space:
mode:
authorGustavo A. R. Silva <gustavo@embeddedor.com>2019-08-29 14:06:05 -0500
committerDennis Zhou <dennis@kernel.org>2019-09-04 13:40:49 -0700
commit14d3761245551bdfc516abd8214a9f76bfd51435 (patch)
tree3dc48f37789de59f6ff352b50728a2169574b93d /mm/percpu.c
parentpercpu: fix typo in pcpu_setup_first_chunk() comment (diff)
downloadwireguard-linux-14d3761245551bdfc516abd8214a9f76bfd51435.tar.xz
wireguard-linux-14d3761245551bdfc516abd8214a9f76bfd51435.zip
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 <gustavo@embeddedor.com> Signed-off-by: Dennis Zhou <dennis@kernel.org>
Diffstat (limited to 'mm/percpu.c')
-rw-r--r--mm/percpu.c2
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),
__alignof__(ai->groups[0].cpu_map[0]));
ai_size = base_size + nr_units * sizeof(ai->groups[0].cpu_map[0]);