Commit 97b047e72bd6e63f2b6021b765b2afdf6b23c50c
Committed by
Mark Brown
1 parent
1ec9c179c0
regulator: da9062: Use struct_size() in devm_kzalloc()
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; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = alloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = alloc(struct_size(instance, entry, 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> Acked-by: Steve Twiss <stwiss.opensource@diasemi.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Showing 1 changed file with 2 additions and 4 deletions Side-by-side Diff
drivers/regulator/da9062-regulator.c
... | ... | @@ -992,7 +992,6 @@ |
992 | 992 | struct regulator_config config = { }; |
993 | 993 | const struct da9062_regulator_info *rinfo; |
994 | 994 | int irq, n, ret; |
995 | - size_t size; | |
996 | 995 | int max_regulators; |
997 | 996 | |
998 | 997 | switch (chip->chip_type) { |
... | ... | @@ -1010,9 +1009,8 @@ |
1010 | 1009 | } |
1011 | 1010 | |
1012 | 1011 | /* Allocate memory required by usable regulators */ |
1013 | - size = sizeof(struct da9062_regulators) + | |
1014 | - max_regulators * sizeof(struct da9062_regulator); | |
1015 | - regulators = devm_kzalloc(&pdev->dev, size, GFP_KERNEL); | |
1012 | + regulators = devm_kzalloc(&pdev->dev, struct_size(regulators, regulator, | |
1013 | + max_regulators), GFP_KERNEL); | |
1016 | 1014 | if (!regulators) |
1017 | 1015 | return -ENOMEM; |
1018 | 1016 |