Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 8432/1: move VMALLOC_END from 0xff000000 to 0xff800000

There is a 12MB unused region in our memory map between the vmalloc and
fixmap areas. This became unused with commit e9da6e9905e6, confirmed
with commit 64d3b6a3f480.

We also have a 8MB guard area before the vmalloc area. With the default
240MB vmalloc area size and the current VMALLOC_END definition, that
means the end of low memory ends up at 0xef800000 which is unfortunate
for 768MB machines where 8MB of RAM is lost to himem.

Let's move VMALLOC_END to 0xff800000 so the guard area won't chop the
top of the 768MB low memory area while keeping the default vmalloc area
size unchanged and still preserving a gap between the vmalloc and fixmap
areas.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

authored by

Nicolas Pitre and committed by
Russell King
6ff09660 803e3dbc

+2 -2
+1 -1
Documentation/arm/memory.txt
··· 54 54 located here through iotable_init(). 55 55 VMALLOC_START is based upon the value 56 56 of the high_memory variable, and VMALLOC_END 57 - is equal to 0xff000000. 57 + is equal to 0xff800000. 58 58 59 59 PAGE_OFFSET high_memory-1 Kernel direct-mapped RAM region. 60 60 This maps the platforms RAM, and typically
+1 -1
arch/arm/include/asm/pgtable.h
··· 43 43 */ 44 44 #define VMALLOC_OFFSET (8*1024*1024) 45 45 #define VMALLOC_START (((unsigned long)high_memory + VMALLOC_OFFSET) & ~(VMALLOC_OFFSET-1)) 46 - #define VMALLOC_END 0xff000000UL 46 + #define VMALLOC_END 0xff800000UL 47 47 48 48 #define LIBRARY_TEXT_START 0x0c000000 49 49