diff --git a/[refs] b/[refs] index 2880756c7caf..5d27c26da928 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 960ddb4fe7832b559897e8b26ec805839b706905 +refs/heads/master: aeebe84cc96cde4181807bc67c300c550d0ef123 diff --git a/trunk/arch/x86/mm/init.c b/trunk/arch/x86/mm/init.c index bb44e9f2cc49..da591ebc8d12 100644 --- a/trunk/arch/x86/mm/init.c +++ b/trunk/arch/x86/mm/init.c @@ -88,6 +88,40 @@ static int __meminit save_mr(struct map_range *mr, int nr_range, return nr_range; } +/* + * adjust the page_size_mask for small range to go with + * big page size instead small one if nearby are ram too. + */ +static void __init_refok adjust_range_page_size_mask(struct map_range *mr, + int nr_range) +{ + int i; + + for (i = 0; i < nr_range; i++) { + if ((page_size_mask & (1<> PAGE_SHIFT) > max_low_pfn) + continue; +#endif + + if (memblock_is_region_memory(start, end - start)) + mr[i].page_size_mask |= 1<