arm64: entry: Move trampoline macros out of ifdef'd section
authorJames Morse <james.morse@arm.com>
Thu, 18 Nov 2021 14:02:30 +0000 (14:02 +0000)
committerJames Morse <james.morse@arm.com>
Tue, 15 Feb 2022 17:40:03 +0000 (17:40 +0000)
The macros for building the kpti trampoline are all behind
CONFIG_UNMAP_KERNEL_AT_EL0, and in a region that outputs to the
.entry.tramp.text section.

Move the macros out so they can be used to generate other kinds of
trampoline. Only the symbols need to be guarded by
CONFIG_UNMAP_KERNEL_AT_EL0 and appear in the .entry.tramp.text section.

Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: James Morse <james.morse@arm.com>
arch/arm64/kernel/entry.S

index 4e6b8d97d94169c2b15cefcf74b55ab3e56efc30..2735c8941c2d1944b53baa476ad98ab18299ec98 100644 (file)
@@ -608,12 +608,6 @@ SYM_CODE_END(ret_to_user)
 
        .popsection                             // .entry.text
 
-#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
-/*
- * Exception vectors trampoline.
- */
-       .pushsection ".entry.tramp.text", "ax"
-
        // Move from tramp_pg_dir to swapper_pg_dir
        .macro tramp_map_kernel, tmp
        mrs     \tmp, ttbr1_el1
@@ -709,6 +703,11 @@ alternative_else_nop_endif
        .endr
        .endm
 
+#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
+/*
+ * Exception vectors trampoline.
+ */
+       .pushsection ".entry.tramp.text", "ax"
        .align  11
 SYM_CODE_START_NOALIGN(tramp_vectors)
        generate_tramp_vector