diff options
Diffstat (limited to 'mm/memblock.c')
-rw-r--r-- | mm/memblock.c | 38 |
1 files changed, 17 insertions, 21 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index 2cb25fe4452c..bf14aea6ab70 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -285,31 +285,27 @@ static void __init_memblock memblock_remove_region(struct memblock_type *type, u | |||
285 | } | 285 | } |
286 | 286 | ||
287 | #ifdef CONFIG_ARCH_DISCARD_MEMBLOCK | 287 | #ifdef CONFIG_ARCH_DISCARD_MEMBLOCK |
288 | 288 | /** | |
289 | phys_addr_t __init_memblock get_allocated_memblock_reserved_regions_info( | 289 | * Discard memory and reserved arrays if they were allocated |
290 | phys_addr_t *addr) | 290 | */ |
291 | { | 291 | void __init memblock_discard(void) |
292 | if (memblock.reserved.regions == memblock_reserved_init_regions) | ||
293 | return 0; | ||
294 | |||
295 | *addr = __pa(memblock.reserved.regions); | ||
296 | |||
297 | return PAGE_ALIGN(sizeof(struct memblock_region) * | ||
298 | memblock.reserved.max); | ||
299 | } | ||
300 | |||
301 | phys_addr_t __init_memblock get_allocated_memblock_memory_regions_info( | ||
302 | phys_addr_t *addr) | ||
303 | { | 292 | { |
304 | if (memblock.memory.regions == memblock_memory_init_regions) | 293 | phys_addr_t addr, size; |
305 | return 0; | ||
306 | 294 | ||
307 | *addr = __pa(memblock.memory.regions); | 295 | if (memblock.reserved.regions != memblock_reserved_init_regions) { |
296 | addr = __pa(memblock.reserved.regions); | ||
297 | size = PAGE_ALIGN(sizeof(struct memblock_region) * | ||
298 | memblock.reserved.max); | ||
299 | __memblock_free_late(addr, size); | ||
300 | } | ||
308 | 301 | ||
309 | return PAGE_ALIGN(sizeof(struct memblock_region) * | 302 | if (memblock.memory.regions == memblock_memory_init_regions) { |
310 | memblock.memory.max); | 303 | addr = __pa(memblock.memory.regions); |
304 | size = PAGE_ALIGN(sizeof(struct memblock_region) * | ||
305 | memblock.memory.max); | ||
306 | __memblock_free_late(addr, size); | ||
307 | } | ||
311 | } | 308 | } |
312 | |||
313 | #endif | 309 | #endif |
314 | 310 | ||
315 | /** | 311 | /** |