lkml.org 
[lkml]   [2019]   [Jan]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] 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>
    ---
    arch/powerpc/platforms/ps3/device-init.c | 4 +---
    1 file changed, 1 insertion(+), 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;
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-01-08 22:00    [W:4.764 / U:0.364 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site