diff options
Diffstat (limited to 'arch/x86/mm/init_64.c')
| -rw-r--r-- | arch/x86/mm/init_64.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 2b6b4a3c8be..3baff255ada 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c @@ -386,7 +386,8 @@ phys_pte_init(pte_t *pte_page, unsigned long addr, unsigned long end,  		 * these mappings are more intelligent.  		 */  		if (pte_val(*pte)) { -			pages++; +			if (!after_bootmem) +				pages++;  			continue;  		} @@ -451,6 +452,8 @@ phys_pmd_init(pmd_t *pmd_page, unsigned long address, unsigned long end,  			 * attributes.  			 */  			if (page_size_mask & (1 << PG_LEVEL_2M)) { +				if (!after_bootmem) +					pages++;  				last_map_addr = next;  				continue;  			} @@ -526,6 +529,8 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,  			 * attributes.  			 */  			if (page_size_mask & (1 << PG_LEVEL_1G)) { +				if (!after_bootmem) +					pages++;  				last_map_addr = next;  				continue;  			}  |