Messages in this thread Patch in this message | | | From | Wei Yang <> | Subject | [PATCH 6/6] x86, mm: x86, mm: jump to split only 4K range when range doesn't span PMD | Date | Tue, 12 Feb 2019 10:12:15 +0800 |
| |
In case the first attempt to round_up pfn with PMD_SIZE exceed the limit_pfn, this means we could only have 4K range.
This patch jumps to split only 4K range for this case.
Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> --- arch/x86/mm/init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c index cbb105388f24..bf422a637035 100644 --- a/arch/x86/mm/init.c +++ b/arch/x86/mm/init.c @@ -383,7 +383,7 @@ static int __meminit split_mem_range(struct map_range *mr, end_pfn = round_up(pfn, PFN_DOWN(PMD_SIZE)); #endif if (end_pfn > limit_pfn) - end_pfn = limit_pfn; + goto only_4K_range; if (start_pfn < end_pfn) { nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0); pfn = end_pfn; @@ -435,6 +435,7 @@ static int __meminit split_mem_range(struct map_range *mr, * Range (E): * tail is not big page (2M) alignment */ +only_4K_range: start_pfn = pfn; end_pfn = limit_pfn; nr_range = save_mr(mr, nr_range, start_pfn, end_pfn, 0); -- 2.19.1
| |