|
@@ -22,6 +22,48 @@ config MMU
|
|
|
bool
|
|
|
default y
|
|
|
|
|
|
+config ARCH_MMAP_RND_BITS_MAX
|
|
|
+ # On Book3S 64, the default virtual address space for 64-bit processes
|
|
|
+ # is 2^47 (128TB). As a maximum, allow randomisation to consume up to
|
|
|
+ # 32T of address space (2^45), which should ensure a reasonable gap
|
|
|
+ # between bottom-up and top-down allocations for applications that
|
|
|
+ # consume "normal" amounts of address space. Book3S 64 only supports 64K
|
|
|
+ # and 4K page sizes.
|
|
|
+ default 29 if PPC_BOOK3S_64 && PPC_64K_PAGES # 29 = 45 (32T) - 16 (64K)
|
|
|
+ default 33 if PPC_BOOK3S_64 # 33 = 45 (32T) - 12 (4K)
|
|
|
+ #
|
|
|
+ # On all other 64-bit platforms (currently only Book3E), the virtual
|
|
|
+ # address space is 2^46 (64TB). Allow randomisation to consume up to 16T
|
|
|
+ # of address space (2^44). Only 4K page sizes are supported.
|
|
|
+ default 32 if 64BIT # 32 = 44 (16T) - 12 (4K)
|
|
|
+ #
|
|
|
+ # For 32-bit, use the compat values, as they're the same.
|
|
|
+ default ARCH_MMAP_RND_COMPAT_BITS_MAX
|
|
|
+
|
|
|
+config ARCH_MMAP_RND_BITS_MIN
|
|
|
+ # Allow randomisation to consume up to 1GB of address space (2^30).
|
|
|
+ default 14 if 64BIT && PPC_64K_PAGES # 14 = 30 (1GB) - 16 (64K)
|
|
|
+ default 18 if 64BIT # 18 = 30 (1GB) - 12 (4K)
|
|
|
+ #
|
|
|
+ # For 32-bit, use the compat values, as they're the same.
|
|
|
+ default ARCH_MMAP_RND_COMPAT_BITS_MIN
|
|
|
+
|
|
|
+config ARCH_MMAP_RND_COMPAT_BITS_MAX
|
|
|
+ # Total virtual address space for 32-bit processes is 2^31 (2GB).
|
|
|
+ # Allow randomisation to consume up to 512MB of address space (2^29).
|
|
|
+ default 11 if PPC_256K_PAGES # 11 = 29 (512MB) - 18 (256K)
|
|
|
+ default 13 if PPC_64K_PAGES # 13 = 29 (512MB) - 16 (64K)
|
|
|
+ default 15 if PPC_16K_PAGES # 15 = 29 (512MB) - 14 (16K)
|
|
|
+ default 17 # 17 = 29 (512MB) - 12 (4K)
|
|
|
+
|
|
|
+config ARCH_MMAP_RND_COMPAT_BITS_MIN
|
|
|
+ # Total virtual address space for 32-bit processes is 2^31 (2GB).
|
|
|
+ # Allow randomisation to consume up to 8MB of address space (2^23).
|
|
|
+ default 5 if PPC_256K_PAGES # 5 = 23 (8MB) - 18 (256K)
|
|
|
+ default 7 if PPC_64K_PAGES # 7 = 23 (8MB) - 16 (64K)
|
|
|
+ default 9 if PPC_16K_PAGES # 9 = 23 (8MB) - 14 (16K)
|
|
|
+ default 11 # 11 = 23 (8MB) - 12 (4K)
|
|
|
+
|
|
|
config HAVE_SETUP_PER_CPU_AREA
|
|
|
def_bool PPC64
|
|
|
|
|
@@ -120,6 +162,8 @@ config PPC
|
|
|
select HAVE_ARCH_HARDENED_USERCOPY
|
|
|
select HAVE_ARCH_JUMP_LABEL
|
|
|
select HAVE_ARCH_KGDB
|
|
|
+ select HAVE_ARCH_MMAP_RND_BITS
|
|
|
+ select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
|
|
|
select HAVE_ARCH_SECCOMP_FILTER
|
|
|
select HAVE_ARCH_TRACEHOOK
|
|
|
select HAVE_CBPF_JIT if !PPC64
|