aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/Kconfig
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2013-10-10 20:18:18 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2013-10-13 06:13:13 -0400
commit6145cfe394a7f138f6b64491c5663f97dba12450 (patch)
tree409c39dce2121c84fd1a96102a16e7d69c20285c /arch/x86/Kconfig
parentf32360ef6608434a032dc7ad262d45e9693c27f3 (diff)
x86, kaslr: Raise the maximum virtual address to -1 GiB on x86_64
On 64-bit, this raises the maximum location to -1 GiB (from -1.5 GiB), the upper limit currently, since the kernel fixmap page mappings need to be moved to use the other 1 GiB (which would be the theoretical limit when building with -mcmodel=kernel). Signed-off-by: Kees Cook <keescook@chromium.org> Link: http://lkml.kernel.org/r/1381450698-28710-7-git-send-email-keescook@chromium.org Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/Kconfig')
-rw-r--r--arch/x86/Kconfig16
1 files changed, 13 insertions, 3 deletions
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 992701d4d4f8..51f439953d23 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1746,13 +1746,23 @@ config RANDOMIZE_BASE
1746config RANDOMIZE_BASE_MAX_OFFSET 1746config RANDOMIZE_BASE_MAX_OFFSET
1747 hex "Maximum ASLR offset allowed" 1747 hex "Maximum ASLR offset allowed"
1748 depends on RANDOMIZE_BASE 1748 depends on RANDOMIZE_BASE
1749 default "0x10000000" 1749 range 0x0 0x20000000 if X86_32
1750 range 0x0 0x10000000 1750 default "0x20000000" if X86_32
1751 range 0x0 0x40000000 if X86_64
1752 default "0x40000000" if X86_64
1751 ---help--- 1753 ---help---
1752 Determines the maximal offset in bytes that will be applied to the 1754 Determines the maximal offset in bytes that will be applied to the
1753 kernel when Address Space Layout Randomization (ASLR) is active. 1755 kernel when Address Space Layout Randomization (ASLR) is active.
1754 Must be less than or equal to the actual physical memory on the 1756 Must be less than or equal to the actual physical memory on the
1755 system. This must be a power of two. 1757 system. This must be a multiple of CONFIG_PHYSICAL_ALIGN.
1758
1759 On 32-bit this is limited to 512MiB.
1760
1761 On 64-bit this is limited by how the kernel fixmap page table is
1762 positioned, so this cannot be larger that 1GiB currently. Normally
1763 there is a 512MiB to 1.5GiB split between kernel and modules. When
1764 this is raised above the 512MiB default, the modules area will
1765 shrink to compensate, up to the current maximum 1GiB to 1GiB split.
1756 1766
1757# Relocation on x86 needs some additional build support 1767# Relocation on x86 needs some additional build support
1758config X86_NEED_RELOCS 1768config X86_NEED_RELOCS