[PATCH] ARM: fix bug which VMALLOC_START is lowwer than 0xf0000000
Yongtaek Lee
ytk.lee at samsung.com
Wed Sep 2 19:24:47 PDT 2015
default value of vmalloc_min was set 0xf0000000 for ARM by commit
0536bdf3. But actually vmalloc_min is 0xef800000 not 0xf0000000.
VMALLOC_END - (240 << 20) - VMALLOC_OFFSET)
0xff000000 - 0x0f000000 - 0x00800000 = 0xef800000
In case of 768MB ram without CONFIG_HIGHMEM=y, last 8MB could not be
allocated. Kernel log also print out warning message as below.
"Truncating RAM at 80000000-afffffff to -af7fffff (vmalloc region overlap)."
Although it could be solved by state "vmalloc=size" in cmdline but i think
it would be better to change default value to 232 from 240.
Signed-off-by: Yongtaek Lee <ytk.lee at samsung.com>
---
arch/arm/mm/mmu.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 8348ed6..9a1bab4 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -1040,12 +1040,12 @@ void __init debug_ll_io_init(void)
#endif
static void * __initdata vmalloc_min =
- (void *)(VMALLOC_END - (240 << 20) - VMALLOC_OFFSET);
+ (void *)(VMALLOC_END - (232 << 20) - VMALLOC_OFFSET);
/*
* vmalloc=size forces the vmalloc area to be exactly 'size'
* bytes. This can be used to increase (or decrease) the vmalloc
- * area - the default is 240m.
+ * area - the default is 232m.
*/
static int __init early_vmalloc(char *arg)
{
--
1.7.9
More information about the linux-arm-kernel
mailing list