From: Jeremy Fitzhardinge <jeremy@goop.org>
Date: Tue, 24 Jun 2008 21:32:48 +0000 (-0400)
Subject: x86: fix pte allocation in "x86: introduce init_memory_mapping for 32bit"
X-Git-Tag: firefly_0821_release~19697^2~121
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8207c2570af6f819b61be9ef3fb298d0a8c0e18c;p=firefly-linux-kernel-4.4.55.git

x86: fix pte allocation in "x86: introduce init_memory_mapping for 32bit"

The patch "x86: introduce init_memory_mapping for 32bit" does not allocate
enough space for PTEs if the CPU does not implement PSE.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Acked-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index c059c460e32d..156000de6e62 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -733,6 +733,11 @@ static void __init find_early_table_space(unsigned long end)
 	pmds = (end + PMD_SIZE - 1) >> PMD_SHIFT;
 	tables += PAGE_ALIGN(pmds * sizeof(pmd_t));
 
+	if (!cpu_has_pse) {
+		int ptes = (end + PAGE_SIZE - 1) >> PAGE_SHIFT;
+		tables += PAGE_ALIGN(ptes * sizeof(pte_t));
+	}
+
 	/*
 	 * RED-PEN putting page tables only on node 0 could
 	 * cause a hotspot and fill up ZONE_DMA. The page tables