Commit 4df69e0d authored by ndesaulniers@google.com's avatar ndesaulniers@google.com Committed by Will Deacon
Browse files

arm64: kernel: remove SHF_WRITE|SHF_EXECINSTR from .idmap.text



commit d5417081 ("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: d5417081 ("arm64: fix .idmap.text assertion for large kernels")
Reported-by: default avatarGreg Thelen <gthelen@google.com>
Reviewed-by: default avatarArd Biesheuvel <ardb@kernel.org>
Signed-off-by: default avatarNick Desaulniers <ndesaulniers@google.com>
Link: https://lore.kernel.org/r/20230428-awx-v2-1-b197ffa16edc@google.com


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent eda081d2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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)
+1 −1
Original line number Diff line number Diff line
@@ -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
+3 −3
Original line number Diff line number Diff line
@@ -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