arm64: kernel: remove SHF_WRITE|SHF_EXECINSTR from .idmap.text
authorndesaulniers@google.com <ndesaulniers@google.com>
Fri, 28 Apr 2023 18:28:17 +0000 (11:28 -0700)
committerWill Deacon <will@kernel.org>
Tue, 2 May 2023 11:42:22 +0000 (12:42 +0100)
commit d54170812ef1 ("arm64: fix .idmap.text assertion for large kernels")
modified some of the section assembler directives that declare
.idmap.text to be SHF_ALLOC instead of
SHF_ALLOC|SHF_WRITE|SHF_EXECINSTR.

This patch fixes up the remaining stragglers that were left behind.  Add
Fixes tag so that this doesn't precede related change in stable.

Fixes: d54170812ef1 ("arm64: fix .idmap.text assertion for large kernels")
Reported-by: Greg Thelen <gthelen@google.com>
Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
Link: https://lore.kernel.org/r/20230428-awx-v2-1-b197ffa16edc@google.com
Signed-off-by: Will Deacon <will@kernel.org>
arch/arm64/kernel/cpu-reset.S
arch/arm64/kernel/sleep.S
arch/arm64/mm/proc.S

index 6b752fe..c87445d 100644 (file)
@@ -14,7 +14,7 @@
 #include <asm/virt.h>
 
 .text
-.pushsection    .idmap.text, "awx"
+.pushsection    .idmap.text, "a"
 
 /*
  * cpu_soft_restart(el2_switch, entry, arg0, arg1, arg2)
index 2ae7cff..2aa5129 100644 (file)
@@ -97,7 +97,7 @@ SYM_FUNC_START(__cpu_suspend_enter)
        ret
 SYM_FUNC_END(__cpu_suspend_enter)
 
-       .pushsection ".idmap.text", "awx"
+       .pushsection ".idmap.text", "a"
 SYM_CODE_START(cpu_resume)
        mov     x0, xzr
        bl      init_kernel_el
index 91410f4..c2cb437 100644 (file)
@@ -167,7 +167,7 @@ alternative_else_nop_endif
 SYM_FUNC_END(cpu_do_resume)
 #endif
 
-       .pushsection ".idmap.text", "awx"
+       .pushsection ".idmap.text", "a"
 
 .macro __idmap_cpu_set_reserved_ttbr1, tmp1, tmp2
        adrp    \tmp1, reserved_pg_dir
@@ -201,7 +201,7 @@ SYM_FUNC_END(idmap_cpu_replace_ttbr1)
 
 #define KPTI_NG_PTE_FLAGS      (PTE_ATTRINDX(MT_NORMAL) | SWAPPER_PTE_FLAGS)
 
-       .pushsection ".idmap.text", "awx"
+       .pushsection ".idmap.text", "a"
 
        .macro  kpti_mk_tbl_ng, type, num_entries
        add     end_\type\()p, cur_\type\()p, #\num_entries * 8
@@ -400,7 +400,7 @@ SYM_FUNC_END(idmap_kpti_install_ng_mappings)
  * Output:
  *     Return in x0 the value of the SCTLR_EL1 register.
  */
-       .pushsection ".idmap.text", "awx"
+       .pushsection ".idmap.text", "a"
 SYM_FUNC_START(__cpu_setup)
        tlbi    vmalle1                         // Invalidate local TLB
        dsb     nsh