x86, memblock: Use memblock_memory_size()/memblock_free_memory_size() to get correct dma_reserve

memblock_memory_size() will return memory size in memblock.memory.region.
memblock_free_memory_size() will return free memory size in memblock.memory.region.

So We can get exact reseved size in specified range.

Set the size right after initmem_init(), because later bootmem API will
get area above 16M. (except some fallback).

Later after we remove the bootmem, We could call that just before paging_init().

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
Yinghai Lu
2010-08-25 13:39:18 -07:00
committed by H. Peter Anvin
parent a587d2daeb
commit 6f2a75369e
4 changed files with 19 additions and 7 deletions

View File

@@ -1013,6 +1013,7 @@ void __init setup_arch(char **cmdline_p)
#endif
initmem_init(0, max_pfn, acpi, k8);
memblock_find_dma_reserve();
#ifndef CONFIG_NO_BOOTMEM
memblock_x86_to_bootmem(0, max_low_pfn<<PAGE_SHIFT);
#endif