summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/pgtable_32_types.h
diff options
context:
space:
mode:
authorMinfei Huang <mnfhuang@gmail.com>2014-10-23 23:36:17 +0800
committerIngo Molnar <mingo@kernel.org>2014-10-28 12:21:48 +0100
commit96e70f83285676d8794f62f3c294d0247bef6b21 (patch)
tree2d182d3a0ec64b38f305914aa5e3592e15e0269a /arch/x86/include/asm/pgtable_32_types.h
parentcac7f2429872d3733dc3f9915857b1691da2eb2f (diff)
x86/mm: Avoid overlap the fixmap area on i386
It is a problem when configuring high memory off where the vmalloc reserve area could end up overlapping the early_ioremap fixmap area on i386. The ordering of the VMALLOC_RESERVE space is: FIXADDR_TOP fixed_addresses FIXADDR_START early_ioremap fixed addresses FIXADDR_BOOT_START Persistent kmap area PKMAP_BASE VMALLOC_END Vmalloc area VMALLOC_START high_memory The available address we can use is lower than FIXADDR_BOOT_START. So we will set the kmap boundary below the FIXADDR_BOOT_START, if we configure high memory. If we configure high memory, the vmalloc reserve area should end up to PKMAP_BASE, otherwise should end up to FIXADDR_BOOT_START. Signed-off-by: Minfei Huang <mnfhuang@gmail.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: http://lkml.kernel.org/r/6B680A9E-6CE9-4C96-934B-CB01DCB58278@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/include/asm/pgtable_32_types.h')
-rw-r--r--arch/x86/include/asm/pgtable_32_types.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
index ed5903be26fe..2ac5fc86abb3 100644
--- a/arch/x86/include/asm/pgtable_32_types.h
+++ b/arch/x86/include/asm/pgtable_32_types.h
@@ -43,7 +43,7 @@ extern bool __vmalloc_start_set; /* set once high_memory is set */
#ifdef CONFIG_HIGHMEM
# define VMALLOC_END (PKMAP_BASE - 2 * PAGE_SIZE)
#else
-# define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
+# define VMALLOC_END (FIXADDR_BOOT_START - 2 * PAGE_SIZE)
#endif
#define MODULES_VADDR VMALLOC_START