diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-02-21 02:32:19 -0500 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-02-21 02:32:19 -0500 |
commit | 3f60db4bde17088feed5f143582d7661cdbb9a01 (patch) | |
tree | 21a7866ae6d199cfa8f619ced9500687bdf84f18 /mm/memblock.c | |
parent | 5e36097889725dbe4f098c3f1e93cb2f21cae6ee (diff) | |
parent | b01543dfe67bb1d191998e90d20534dc354de059 (diff) |
Merge commit 'v3.3-rc4'
Diffstat (limited to 'mm/memblock.c')
-rw-r--r-- | mm/memblock.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index 2f55f19b7c86..77b5f227e1d8 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -106,14 +106,17 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t start, | |||
106 | if (end == MEMBLOCK_ALLOC_ACCESSIBLE) | 106 | if (end == MEMBLOCK_ALLOC_ACCESSIBLE) |
107 | end = memblock.current_limit; | 107 | end = memblock.current_limit; |
108 | 108 | ||
109 | /* adjust @start to avoid underflow and allocating the first page */ | 109 | /* avoid allocating the first page */ |
110 | start = max3(start, size, (phys_addr_t)PAGE_SIZE); | 110 | start = max_t(phys_addr_t, start, PAGE_SIZE); |
111 | end = max(start, end); | 111 | end = max(start, end); |
112 | 112 | ||
113 | for_each_free_mem_range_reverse(i, nid, &this_start, &this_end, NULL) { | 113 | for_each_free_mem_range_reverse(i, nid, &this_start, &this_end, NULL) { |
114 | this_start = clamp(this_start, start, end); | 114 | this_start = clamp(this_start, start, end); |
115 | this_end = clamp(this_end, start, end); | 115 | this_end = clamp(this_end, start, end); |
116 | 116 | ||
117 | if (this_end < size) | ||
118 | continue; | ||
119 | |||
117 | cand = round_down(this_end - size, align); | 120 | cand = round_down(this_end - size, align); |
118 | if (cand >= this_start) | 121 | if (cand >= this_start) |
119 | return cand; | 122 | return cand; |