diff options
| author | Colin Cross <ccross@android.com> | 2012-04-27 14:03:45 -0700 |
|---|---|---|
| committer | Colin Cross <ccross@android.com> | 2012-04-27 14:03:45 -0700 |
| commit | 957265bd4fe182af757886f117416d66f68854aa (patch) | |
| tree | 177cee182ea61611f0b80db704203bf72ee4f3cb /mm/memblock.c | |
| parent | 60c98d9abbd1ff3274b904027690f3c33d656250 (diff) | |
| parent | 66f75a5d028beaf67c931435fdc3e7823125730c (diff) | |
Merge commit 'v3.4-rc4' into android-3.4
Diffstat (limited to 'mm/memblock.c')
| -rw-r--r-- | mm/memblock.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index 99f28559950..a44eab3157f 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -330,6 +330,9 @@ static int __init_memblock memblock_add_region(struct memblock_type *type, phys_addr_t end = base + memblock_cap_size(base, &size); int i, nr_new; + if (!size) + return 0; + /* special case for empty array */ if (type->regions[0].size == 0) { WARN_ON(type->cnt != 1 || type->total_size); @@ -430,6 +433,9 @@ static int __init_memblock memblock_isolate_range(struct memblock_type *type, *start_rgn = *end_rgn = 0; + if (!size) + return 0; + /* we'll create at most two more regions */ while (type->cnt + 2 > type->max) if (memblock_double_array(type) < 0) @@ -514,7 +520,6 @@ int __init_memblock memblock_reserve(phys_addr_t base, phys_addr_t size) (unsigned long long)base, (unsigned long long)base + size, (void *)_RET_IP_); - BUG_ON(0 == size); return memblock_add_region(_rgn, base, size, MAX_NUMNODES); } |
