lkml.org 
[lkml]   [2019]   [Dec]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 084/125] lib/genalloc.c: use vzalloc_node() to allocate the bitmap
    Date
    From: Huang Shijie <sjhuang@iluvatar.ai>

    [ Upstream commit 6862d2fc81859f88c1f3f660886427893f2b4f3f ]

    Some devices may have big memory on chip, such as over 1G. In some
    cases, the nbytes maybe bigger then 4M which is the bounday of the
    memory buddy system (4K default).

    So use vzalloc_node() to allocate the bitmap. Also use vfree to free
    it.

    Link: http://lkml.kernel.org/r/20181225015701.6289-1-sjhuang@iluvatar.ai
    Signed-off-by: Huang Shijie <sjhuang@iluvatar.ai>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Alexey Skidanov <alexey.skidanov@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    lib/genalloc.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/lib/genalloc.c b/lib/genalloc.c
    index 5deb25c40a5a1..f365d71cdc774 100644
    --- a/lib/genalloc.c
    +++ b/lib/genalloc.c
    @@ -187,7 +187,7 @@ int gen_pool_add_virt(struct gen_pool *pool, unsigned long virt, phys_addr_t phy
    int nbytes = sizeof(struct gen_pool_chunk) +
    BITS_TO_LONGS(nbits) * sizeof(long);

    - chunk = kzalloc_node(nbytes, GFP_KERNEL, nid);
    + chunk = vzalloc_node(nbytes, nid);
    if (unlikely(chunk == NULL))
    return -ENOMEM;

    @@ -251,7 +251,7 @@ void gen_pool_destroy(struct gen_pool *pool)
    bit = find_next_bit(chunk->bits, end_bit, 0);
    BUG_ON(bit < end_bit);

    - kfree(chunk);
    + vfree(chunk);
    }
    kfree_const(pool->name);
    kfree(pool);
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-12-04 19:14    [W:4.152 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site