From cc52fbe9ab5f1042c514f8b148069725ecaece8b Mon Sep 17 00:00:00 2001 From: Juergen Gross Date: Tue, 12 Jul 2016 13:43:54 +0200 Subject: [PATCH] mini-os: correct first free pfn The first free pfn available for allocation is calculated by adding the number of page table frames to the pfn of the first page table and then the magic number 3 to account for start info page et al. As the start info page, xenstore page and console page are allocated _before_ the page tables leaving room for these pages behind the page tables makes no sense. Signed-off-by: Juergen Gross Reviewed-by: Wei Liu Acked-by: Samuel Thibault --- arch/x86/mm.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/arch/x86/mm.c b/arch/x86/mm.c index 51aa966..ae1036e 100644 --- a/arch/x86/mm.c +++ b/arch/x86/mm.c @@ -867,9 +867,8 @@ void arch_init_mm(unsigned long* start_pfn_p, unsigned long* max_pfn_p) printk("stack start: %p(VA)\n", stack); printk(" _end: %p(VA)\n", &_end); - /* First page follows page table pages and 3 more pages (store page etc) */ - start_pfn = PFN_UP(to_phys(start_info.pt_base)) + - start_info.nr_pt_frames + 3; + /* First page follows page table pages. */ + start_pfn = PFN_UP(to_phys(start_info.pt_base)) + start_info.nr_pt_frames; max_pfn = start_info.nr_pages; /* We need room for demand mapping and heap, clip available memory */ -- 2.39.5