Similar to PPC64, accept to map RO data as ROX as a trade off between
between security and memory usage.

Having RO data executable is not a high risk as RO data can't be
modified to forge an exploit.

Signed-off-by: Christophe Leroy <christophe.le...@csgroup.eu>
---
 arch/powerpc/Kconfig              | 26 --------------------------
 arch/powerpc/kernel/vmlinux.lds.S |  3 +--
 2 files changed, 1 insertion(+), 28 deletions(-)

diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index f552726c9de2..970a5802850f 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -777,32 +777,6 @@ config THREAD_SHIFT
          Used to define the stack size. The default is almost always what you
          want. Only change this if you know what you are doing.
 
-config ETEXT_SHIFT_BOOL
-       bool "Set custom etext alignment" if STRICT_KERNEL_RWX && \
-                                            (PPC_BOOK3S_32 || PPC_8xx)
-       depends on ADVANCED_OPTIONS
-       help
-         This option allows you to set the kernel end of text alignment. When
-         RAM is mapped by blocks, the alignment needs to fit the size and
-         number of possible blocks. The default should be OK for most configs.
-
-         Say N here unless you know what you are doing.
-
-config ETEXT_SHIFT
-       int "_etext shift" if ETEXT_SHIFT_BOOL
-       range 17 28 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
-       range 19 23 if STRICT_KERNEL_RWX && PPC_8xx
-       default 17 if STRICT_KERNEL_RWX && PPC_BOOK3S_32
-       default 19 if STRICT_KERNEL_RWX && PPC_8xx
-       default PPC_PAGE_SHIFT
-       help
-         On Book3S 32 (603+), IBATs are used to map kernel text.
-         Smaller is the alignment, greater is the number of necessary IBATs.
-
-         On 8xx, large pages (512kb or 8M) are used to map kernel linear
-         memory. Aligning to 8M reduces TLB misses as only 8M pages are used
-         in that case.
-
 config DATA_SHIFT_BOOL
        bool "Set custom data alignment" if STRICT_KERNEL_RWX && \
                                            (PPC_BOOK3S_32 || PPC_8xx)
diff --git a/arch/powerpc/kernel/vmlinux.lds.S 
b/arch/powerpc/kernel/vmlinux.lds.S
index 31a0f201fb6f..54f23205c2b9 100644
--- a/arch/powerpc/kernel/vmlinux.lds.S
+++ b/arch/powerpc/kernel/vmlinux.lds.S
@@ -15,7 +15,6 @@
 #include <asm/thread_info.h>
 
 #define STRICT_ALIGN_SIZE      (1 << CONFIG_DATA_SHIFT)
-#define ETEXT_ALIGN_SIZE       (1 << CONFIG_ETEXT_SHIFT)
 
 ENTRY(_stext)
 
@@ -116,7 +115,7 @@ SECTIONS
 
        } :text
 
-       . = ALIGN(ETEXT_ALIGN_SIZE);
+       . = ALIGN(PAGE_SIZE);
        _etext = .;
        PROVIDE32 (etext = .);
 
-- 
2.25.0

Reply via email to