|
@@ -122,11 +122,19 @@ static unsigned long __init free_low_memory_core_early(void)
|
|
|
for_each_free_mem_range(i, NUMA_NO_NODE, &start, &end, NULL)
|
|
|
count += __free_memory_core(start, end);
|
|
|
|
|
|
- /* free range that is used for reserved array if we allocate it */
|
|
|
+ /* Free memblock.reserved array if it was allocated */
|
|
|
size = get_allocated_memblock_reserved_regions_info(&start);
|
|
|
if (size)
|
|
|
count += __free_memory_core(start, start + size);
|
|
|
|
|
|
+#ifdef CONFIG_ARCH_DISCARD_MEMBLOCK
|
|
|
+
|
|
|
+ /* Free memblock.memory array if it was allocated */
|
|
|
+ size = get_allocated_memblock_memory_regions_info(&start);
|
|
|
+ if (size)
|
|
|
+ count += __free_memory_core(start, start + size);
|
|
|
+#endif
|
|
|
+
|
|
|
return count;
|
|
|
}
|
|
|
|