x86, mm: only call early_ioremap_page_table_range_init() once
authorYinghai Lu <yinghai@kernel.org>
Sat, 17 Nov 2012 03:39:06 +0000 (19:39 -0800)
committerH. Peter Anvin <hpa@linux.intel.com>
Sat, 17 Nov 2012 19:59:29 +0000 (11:59 -0800)
commit719272c45b821d38608fc333700bde1a89c56c59
treecf215602048fcb36c8fc50c731db986d5cea51aa
parentddd3509df8f8d4f1cf4784f559d702ce00dc8846
x86, mm: only call early_ioremap_page_table_range_init() once

On 32bit, before patcheset that only set page table for ram, we only
call that one time.

Now, we are calling that during every init_memory_mapping if we have holes
under max_low_pfn.

We should only call it one time after all ranges under max_low_page get
mapped just like we did before.

Also that could avoid the risk to run out of pgt_buf in BRK.

Need to update page_table_range_init() to count the pages for kmap page table
at first, and use new added alloc_low_pages() to get pages in sequence.
That will conform to the requirement that pages need to be in low to high order.

Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Link: http://lkml.kernel.org/r/1353123563-3103-30-git-send-email-yinghai@kernel.org
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
arch/x86/mm/init.c
arch/x86/mm/init_32.c