vmlinux.lds.h: Move NOTES into RO_DATA
authorKees Cook <keescook@chromium.org>
Tue, 29 Oct 2019 21:13:32 +0000 (14:13 -0700)
committerBorislav Petkov <bp@suse.de>
Mon, 4 Nov 2019 14:34:41 +0000 (15:34 +0100)
The .notes section should be non-executable read-only data. As such,
move it to the RO_DATA macro instead of being per-architecture defined.

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # s390
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: linux-alpha@vger.kernel.org
Cc: linux-arch@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-c6x-dev@linux-c6x.org
Cc: linux-ia64@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
Cc: Segher Boessenkool <segher@kernel.crashing.org>
Cc: Will Deacon <will@kernel.org>
Cc: x86-ml <x86@kernel.org>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Link: https://lkml.kernel.org/r/20191029211351.13243-11-keescook@chromium.org
26 files changed:
arch/alpha/kernel/vmlinux.lds.S
arch/arc/kernel/vmlinux.lds.S
arch/arm/kernel/vmlinux-xip.lds.S
arch/arm/kernel/vmlinux.lds.S
arch/arm64/kernel/vmlinux.lds.S
arch/c6x/kernel/vmlinux.lds.S
arch/csky/kernel/vmlinux.lds.S
arch/h8300/kernel/vmlinux.lds.S
arch/hexagon/kernel/vmlinux.lds.S
arch/ia64/kernel/vmlinux.lds.S
arch/microblaze/kernel/vmlinux.lds.S
arch/mips/kernel/vmlinux.lds.S
arch/nds32/kernel/vmlinux.lds.S
arch/nios2/kernel/vmlinux.lds.S
arch/openrisc/kernel/vmlinux.lds.S
arch/parisc/kernel/vmlinux.lds.S
arch/powerpc/kernel/vmlinux.lds.S
arch/riscv/kernel/vmlinux.lds.S
arch/s390/kernel/vmlinux.lds.S
arch/sh/kernel/vmlinux.lds.S
arch/sparc/kernel/vmlinux.lds.S
arch/um/include/asm/common.lds.S
arch/unicore32/kernel/vmlinux.lds.S
arch/x86/kernel/vmlinux.lds.S
arch/xtensa/kernel/vmlinux.lds.S
include/asm-generic/vmlinux.lds.h

index cdfdc91..bf28043 100644 (file)
@@ -34,8 +34,6 @@ SECTIONS
        swapper_pg_dir = SWAPPER_PGD;
        _etext = .;     /* End of text section */
 
-       NOTES
-
        RODATA
        EXCEPTION_TABLE(16)
 
index 6c693a9..1d6eef4 100644 (file)
@@ -118,8 +118,6 @@ SECTIONS
        /DISCARD/ : {   *(.eh_frame) }
 #endif
 
-       NOTES
-
        . = ALIGN(PAGE_SIZE);
        _end = . ;
 
index 8c74037..d2a9651 100644 (file)
@@ -70,8 +70,6 @@ SECTIONS
        ARM_UNWIND_SECTIONS
 #endif
 
-       NOTES
-
        _etext = .;                     /* End of text and rodata section */
 
        ARM_VECTORS
index 23150c0..068db68 100644 (file)
@@ -81,8 +81,6 @@ SECTIONS
        ARM_UNWIND_SECTIONS
 #endif
 
-       NOTES
-
 #ifdef CONFIG_STRICT_KERNEL_RWX
        . = ALIGN(1<<SECTION_SHIFT);
 #else
index aa76f72..e7dafc2 100644 (file)
@@ -137,7 +137,6 @@ SECTIONS
 
        RO_DATA(PAGE_SIZE)              /* everything from this point to     */
        EXCEPTION_TABLE(8)              /* __init_begin will be marked RO NX */
-       NOTES
 
        . = ALIGN(PAGE_SIZE);
        idmap_pg_dir = .;
index 584bab2..d6e3802 100644 (file)
@@ -81,7 +81,6 @@ SECTIONS
        }
 
        EXCEPTION_TABLE(16)
-       NOTES
 
        RO_DATA_SECTION(PAGE_SIZE)
        .const :
index ae7961b..75dd314 100644 (file)
@@ -53,7 +53,6 @@ SECTIONS
        RW_DATA_SECTION(L1_CACHE_BYTES, PAGE_SIZE, THREAD_SIZE)
        _edata = .;
 
-       NOTES
        EXCEPTION_TABLE(L1_CACHE_BYTES)
        BSS_SECTION(L1_CACHE_BYTES, PAGE_SIZE, L1_CACHE_BYTES)
        VBR_BASE
index 49f716c..88776e7 100644 (file)
@@ -38,7 +38,6 @@ SECTIONS
        _etext = . ;
        }
        EXCEPTION_TABLE(16)
-       NOTES
        RO_DATA_SECTION(4)
        ROMEND = .;
 #if defined(CONFIG_ROMKERNEL)
index 78f2418..6a6e8fc 100644 (file)
@@ -54,7 +54,6 @@ SECTIONS
        _edata = .;
 
        EXCEPTION_TABLE(16)
-       NOTES
 
        BSS_SECTION(_PAGE_SIZE, _PAGE_SIZE, _PAGE_SIZE)
 
index bfc937e..fae0775 100644 (file)
@@ -70,8 +70,6 @@ SECTIONS {
        /*
         * Read-only data
         */
-       NOTES
-
        EXCEPTION_TABLE(16)
 
        /* MCA table */
index e1f3e87..d008e50 100644 (file)
@@ -53,7 +53,6 @@ SECTIONS {
        . = ALIGN(16);
        RODATA
        EXCEPTION_TABLE(16)
-       NOTES
 
        /*
         * sdata2 section can go anywhere, but must be word aligned
index 6a22f53..91e566d 100644 (file)
@@ -81,8 +81,6 @@ SECTIONS
                __stop___dbe_table = .;
        }
 
-       NOTES
-
        _sdata = .;                     /* Start of data section */
        RODATA
 
index 9e90f30..c4f1c5a 100644 (file)
@@ -58,7 +58,6 @@ SECTIONS
        _edata  =  .;
 
        EXCEPTION_TABLE(16)
-       NOTES
        BSS_SECTION(4, 4, 4)
        _end = .;
 
index 6ad64f1..20e4078 100644 (file)
@@ -58,7 +58,6 @@ SECTIONS
 
        STABS_DEBUG
        DWARF_DEBUG
-       NOTES
 
        DISCARDS
 }
index 2e2c72c..142c51c 100644 (file)
@@ -79,7 +79,6 @@ SECTIONS
         _edata  =  .;
 
        EXCEPTION_TABLE(4)
-       NOTES
 
        /* Init code and data */
        . = ALIGN(PAGE_SIZE);
index 99cd24f..168d12b 100644 (file)
@@ -131,7 +131,6 @@ SECTIONS
 
        /* RO because of BUILDTIME_EXTABLE_SORT */
        EXCEPTION_TABLE(8)
-       NOTES
 
        /* unwind info */
        .PARISC.unwind : {
index 4f19d81..4e7cec0 100644 (file)
@@ -164,8 +164,6 @@ SECTIONS
 #endif
        EXCEPTION_TABLE(0)
 
-       NOTES
-
 /*
  * Init sections discarded at runtime
  */
index 23cd1a9..df5229c 100644 (file)
@@ -69,7 +69,6 @@ SECTIONS
        BSS_SECTION(PAGE_SIZE, PAGE_SIZE, 0)
 
        EXCEPTION_TABLE(0x10)
-       NOTES
 
        .rel.dyn : {
                *(.rel.dyn*)
index f88eede..beb4df0 100644 (file)
@@ -52,8 +52,6 @@ SECTIONS
                _etext = .;             /* End of text section */
        } :text = 0x0700
 
-       NOTES
-
        RO_DATA_SECTION(PAGE_SIZE)
 
        . = ALIGN(PAGE_SIZE);
index 77a59d8..fef3905 100644 (file)
@@ -48,7 +48,6 @@ SECTIONS
        } = 0x0009
 
        EXCEPTION_TABLE(16)
-       NOTES
 
        _sdata = .;
        RO_DATA(PAGE_SIZE)
index 61afd78..8929fbc 100644 (file)
@@ -78,7 +78,6 @@ SECTIONS
                __stop___fixup = .;
        }
        EXCEPTION_TABLE(16)
-       NOTES
 
        . = ALIGN(PAGE_SIZE);
        __init_begin = ALIGN(PAGE_SIZE);
index d7086b9..91aca35 100644 (file)
@@ -16,7 +16,6 @@
   PROVIDE (_unprotected_end = .);
 
   . = ALIGN(4096);
-  NOTES
   EXCEPTION_TABLE(0)
 
   BUG_TABLE
index 7abf905..78c4c56 100644 (file)
@@ -48,7 +48,6 @@ SECTIONS
        _edata = .;
 
        EXCEPTION_TABLE(L1_CACHE_BYTES)
-       NOTES
 
        BSS_SECTION(0, 0, 0)
        _end = .;
index 8be25b0..41362e9 100644 (file)
@@ -148,8 +148,6 @@ SECTIONS
                _etext = .;
        } :text = 0x9090
 
-       NOTES
-
        EXCEPTION_TABLE(16)
 
        /* .text should occupy whole number of pages */
index 943f106..a0a8437 100644 (file)
@@ -131,7 +131,6 @@ SECTIONS
   .fixup   : { *(.fixup) }
 
   EXCEPTION_TABLE(16)
-  NOTES
   /* Data section */
 
   _sdata = .;
index 97d4299..dc3390e 100644 (file)
@@ -28,7 +28,6 @@
  *     _edata = .;
  *
  *     EXCEPTION_TABLE(...)
- *     NOTES
  *
  *     BSS_SECTION(0, 0, 0)
  *     _end = .;
                __start___modver = .;                                   \
                KEEP(*(__modver))                                       \
                __stop___modver = .;                                    \
-               . = ALIGN((align));                                     \
-               __end_rodata = .;                                       \
        }                                                               \
-       . = ALIGN((align));
+                                                                       \
+       NOTES                                                           \
+                                                                       \
+       . = ALIGN((align));                                             \
+       __end_rodata = .;
 
 /* RODATA & RO_DATA provided for backward compatibility.
  * All archs are supposed to use RO_DATA() */