]> Pileus Git - ~andy/linux/blobdiff - mm/nobootmem.c
mm: free memblock.memory in free_all_bootmem
[~andy/linux] / mm / nobootmem.c
index bb1a70cc97a7f165ebfbfd38c565c67acb8cb438..17c89023184f1e49f6a74415b5850851143f1099 100644 (file)
@@ -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;
 }