lkml.org 
[lkml]   [2010]   [Aug]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 40/43] memblock: Make MEMBLOCK_ERROR be 0
    Date
    And ensure we don't hand out 0 as a valid allocation. We put the
    low limit at PAGE_SIZE arbitrarily.

    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    ---
    include/linux/memblock.h | 2 +-
    mm/memblock.c | 6 ++++++
    2 files changed, 7 insertions(+), 1 deletions(-)

    diff --git a/include/linux/memblock.h b/include/linux/memblock.h
    index 1a9c29c..dfa6449 100644
    --- a/include/linux/memblock.h
    +++ b/include/linux/memblock.h
    @@ -19,7 +19,7 @@
    #include <asm/memblock.h>

    #define INIT_MEMBLOCK_REGIONS 128
    -#define MEMBLOCK_ERROR (~(phys_addr_t)0)
    +#define MEMBLOCK_ERROR 0

    struct memblock_region {
    phys_addr_t base;
    diff --git a/mm/memblock.c b/mm/memblock.c
    index 85cfa1d..cb520df 100644
    --- a/mm/memblock.c
    +++ b/mm/memblock.c
    @@ -105,6 +105,12 @@ static phys_addr_t __init memblock_find_region(phys_addr_t start, phys_addr_t en
    phys_addr_t base, res_base;
    long j;

    + /* Prevent allocations returning 0 as it's also used to
    + * indicate an allocation failure
    + */
    + if (start == 0)
    + start = PAGE_SIZE;
    +
    base = memblock_align_down((end - size), align);
    while (start <= base) {
    j = memblock_overlaps_region(&memblock.reserved, base, size);
    --
    1.7.0.4


    \
     
     \ /
      Last update: 2010-08-06 07:19    [W:0.020 / U:0.484 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site