lkml.org 
[lkml]   [2016]   [Nov]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 3.16 077/346] mtd: pmcmsp-flash: Allocating too much in init_msp_flash()
    3.16.39-rc1 review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Dan Carpenter <dan.carpenter@oracle.com>

    commit 79ad07d45743721010e766e65dc004ad249bd429 upstream.

    There is a cut and paste issue here. The bug is that we are allocating
    more memory than necessary for msp_maps. We should be allocating enough
    space for a map_info struct (144 bytes) but we instead allocate enough
    for an mtd_info struct (1840 bytes). It's a small waste.

    The other part of this is not harmful but when we allocated msp_flash
    then we allocated enough space fro a map_info pointer instead of an
    mtd_info pointer. But since pointers are the same size it works out
    fine.

    Anyway, I decided to clean up all three allocations a bit to make them
    a bit more consistent and clear.

    Fixes: 68aa0fa87f6d ('[MTD] PMC MSP71xx flash/rootfs mappings')
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Brian Norris <computersforpeace@gmail.com>
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    ---
    drivers/mtd/maps/pmcmsp-flash.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    --- a/drivers/mtd/maps/pmcmsp-flash.c
    +++ b/drivers/mtd/maps/pmcmsp-flash.c
    @@ -75,15 +75,15 @@ static int __init init_msp_flash(void)

    printk(KERN_NOTICE "Found %d PMC flash devices\n", fcnt);

    - msp_flash = kmalloc(fcnt * sizeof(struct map_info *), GFP_KERNEL);
    + msp_flash = kcalloc(fcnt, sizeof(*msp_flash), GFP_KERNEL);
    if (!msp_flash)
    return -ENOMEM;

    - msp_parts = kmalloc(fcnt * sizeof(struct mtd_partition *), GFP_KERNEL);
    + msp_parts = kcalloc(fcnt, sizeof(*msp_parts), GFP_KERNEL);
    if (!msp_parts)
    goto free_msp_flash;

    - msp_maps = kcalloc(fcnt, sizeof(struct mtd_info), GFP_KERNEL);
    + msp_maps = kcalloc(fcnt, sizeof(*msp_maps), GFP_KERNEL);
    if (!msp_maps)
    goto free_msp_parts;

    \
     
     \ /
      Last update: 2016-11-14 05:00    [W:4.054 / U:0.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site