diff options
author | Gustavo A. R. Silva <gustavo@embeddedor.com> | 2019-01-08 22:00:10 +0100 |
---|---|---|
committer | Michael Ellerman <mpe@ellerman.id.au> | 2019-01-14 10:39:27 +0100 |
commit | 31367b9a01d6a3f4f77694bd44f547d6f738ff28 (patch) | |
tree | a44702e7683c90aa1dfccb128f180fff480cfecf /arch/powerpc/platforms/ps3/device-init.c | |
parent | powerpc/hvsi: Fix spelling mistake: "lenght" should be "length" (diff) | |
download | linux-31367b9a01d6a3f4f77694bd44f547d6f738ff28.tar.xz linux-31367b9a01d6a3f4f77694bd44f547d6f738ff28.zip |
powerpc/ps3: Use struct_size() in 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;
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 code was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Diffstat (limited to 'arch/powerpc/platforms/ps3/device-init.c')
-rw-r--r-- | arch/powerpc/platforms/ps3/device-init.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/powerpc/platforms/ps3/device-init.c b/arch/powerpc/platforms/ps3/device-init.c index e7075aaff1bb..59587b75493d 100644 --- a/arch/powerpc/platforms/ps3/device-init.c +++ b/arch/powerpc/platforms/ps3/device-init.c @@ -354,9 +354,7 @@ static int ps3_setup_storage_dev(const struct ps3_repository_device *repo, repo->dev_index, repo->dev_type, port, blk_size, num_blocks, num_regions); - p = kzalloc(sizeof(struct ps3_storage_device) + - num_regions * sizeof(struct ps3_storage_region), - GFP_KERNEL); + p = kzalloc(struct_size(p, regions, num_regions), GFP_KERNEL); if (!p) { result = -ENOMEM; goto fail_malloc; |