]> git.baikalelectronics.ru Git - kernel.git/commitdiff
powerpc/build: move .data.rel.ro, .sdata2 to read-only
authorNicholas Piggin <npiggin@gmail.com>
Fri, 16 Sep 2022 04:07:52 +0000 (14:07 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Mon, 26 Sep 2022 10:58:17 +0000 (20:58 +1000)
.sdata2 is a readonly small data section for ppc32, and .data.rel.ro
is data that needs relocating but is read-only after that so these
can both be moved to the read only memory region.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220916040755.2398112-5-npiggin@gmail.com
arch/powerpc/kernel/vmlinux.lds.S

index 0bacec66fecf88d2567c2a965a76fe444d9a671d..fb697bc4b4e74e884a1f80729a5c57a68eb4e552 100644 (file)
@@ -135,6 +135,16 @@ SECTIONS
        /* Read-only data */
        RO_DATA(PAGE_SIZE)
 
+#ifdef CONFIG_PPC32
+       .sdata2 : AT(ADDR(.sdata2) - LOAD_OFFSET) {
+               *(.sdata2)
+       }
+#endif
+
+       .data.rel.ro : AT(ADDR(.data.rel.ro) - LOAD_OFFSET) {
+               *(.data.rel.ro*)
+       }
+
        .branch_lt : AT(ADDR(.branch_lt) - LOAD_OFFSET) {
                *(.branch_lt)
        }
@@ -349,19 +359,13 @@ SECTIONS
        . = ALIGN(PAGE_SIZE);
        _sdata = .;
 
-#ifdef CONFIG_PPC32
        .data : AT(ADDR(.data) - LOAD_OFFSET) {
                DATA_DATA
                *(.data.rel*)
+#ifdef CONFIG_PPC32
                *(SDATA_MAIN)
-               *(.sdata2)
-       }
-#else
-       .data : AT(ADDR(.data) - LOAD_OFFSET) {
-               DATA_DATA
-               *(.data.rel*)
-       }
 #endif
+       }
 
        /* The initial task and kernel stack */
        INIT_TASK_DATA_SECTION(THREAD_ALIGN)