From: Juergen Gross Date: Tue, 12 Jul 2016 11:43:54 +0000 (+0200) Subject: mini-os: correct first free pfn X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=cc52fbe9ab5f1042c514f8b148069725ecaece8b;p=people%2Fpauldu%2Fmini-os.git 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 --- 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 */