memblock: Add memblock_mem_size()
Use it to get mem size under the limit_pfn. to replace local version in x86 reserved_initrd. -v2: remove not needed cast that is pointed out by HPA. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Link: http://lkml.kernel.org/r/1359058816-7615-29-git-send-email-yinghai@kernel.org Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
committed by
H. Peter Anvin
parent
d1af6d045f
commit
595ad9af85
@ -828,6 +828,23 @@ phys_addr_t __init memblock_phys_mem_size(void)
|
||||
return memblock.memory.total_size;
|
||||
}
|
||||
|
||||
phys_addr_t __init memblock_mem_size(unsigned long limit_pfn)
|
||||
{
|
||||
unsigned long pages = 0;
|
||||
struct memblock_region *r;
|
||||
unsigned long start_pfn, end_pfn;
|
||||
|
||||
for_each_memblock(memory, r) {
|
||||
start_pfn = memblock_region_memory_base_pfn(r);
|
||||
end_pfn = memblock_region_memory_end_pfn(r);
|
||||
start_pfn = min_t(unsigned long, start_pfn, limit_pfn);
|
||||
end_pfn = min_t(unsigned long, end_pfn, limit_pfn);
|
||||
pages += end_pfn - start_pfn;
|
||||
}
|
||||
|
||||
return (phys_addr_t)pages << PAGE_SHIFT;
|
||||
}
|
||||
|
||||
/* lowest address */
|
||||
phys_addr_t __init_memblock memblock_start_of_DRAM(void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user