Commit be739f4b authored by Kirill A. Shutemov's avatar Kirill A. Shutemov Committed by Thomas Gleixner
Browse files

x86/mm: Fix ELF_ET_DYN_BASE for 5-level paging

On machines with 5-level paging we don't want to allocate mapping above
47-bit unless user explicitly asked for it. See b569bab7 ("x86/mm:
Prepare to expose larger address space to userspace") for details.

c715b72c ("mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base
changes") broke the behaviour. After the commit elf binary and heap got
mapped above 47-bits.

Use DEFAULT_MAP_WINDOW instead of TASK_SIZE to determine ELF_ET_DYN_BASE so
it's forced to be below 47-bits unconditionally.

Fixes: c715b72c

 ("mm: revert x86_64 and arm64 ELF_ET_DYN_BASE base changes")
Signed-off-by: default avatarKirill A. Shutemov <>
Signed-off-by: default avatarThomas Gleixner <>
Acked-by: default avatarMichal Hocko <>
Cc: Kees Cook <>
Cc: Nicholas Piggin <>
Cc: Andrew Morton <>
parent d0cd64b0
......@@ -253,7 +253,7 @@ extern int force_personality32;
* space open for things that want to use the area for 32-bit pointers.
#define ELF_ET_DYN_BASE (mmap_is_ia32() ? 0x000400000UL : \
(TASK_SIZE / 3 * 2))
/* This yields a mask that user programs can use to figure out what
instruction set this CPU supports. This could be done in user space,
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment