arm64: entry: Move trampoline macros out of ifdef'd section

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: James Morse <james.morse@xxxxxxx>

commit 13d7a08352a83ef2252aeb464a5e08dfc06b5dfd upstream.

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@xxxxxxxxxxxxxxx>
Reviewed-by: Catalin Marinas <catalin.marinas@xxxxxxx>
Signed-off-by: James Morse <james.morse@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
 arch/arm64/kernel/entry.S |   12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

--- a/arch/arm64/kernel/entry.S
+++ b/arch/arm64/kernel/entry.S
@@ -985,12 +985,7 @@ __ni_sys_trace:
 
 	.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
 	sub	\tmp, \tmp, #(SWAPPER_DIR_SIZE + RESERVED_TTBR0_SIZE)
@@ -1081,6 +1076,11 @@ alternative_insn isb, nop, ARM64_WORKARO
 	.endr
 	.endm
 
+#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
+/*
+ * Exception vectors trampoline.
+ */
+	.pushsection ".entry.tramp.text", "ax"
 	.align	11
 ENTRY(tramp_vectors)
 	generate_tramp_vector


Patches currently in stable-queue which might be from james.morse@xxxxxxx are

queue-4.14/arm64-entry-add-macro-for-reading-symbol-addresses-from-the-trampoline.patch
queue-4.14/arm64-use-the-clearbhb-instruction-in-mitigations.patch
queue-4.14/arm64-add-percpu-vectors-for-el1.patch
queue-4.14/arm64-arch_timer-add-workaround-for-arm-erratum-1188873.patch
queue-4.14/arm64-entry-free-up-another-register-on-kpti-s-tramp_exit-path.patch
queue-4.14/arm64-entry-don-t-assume-tramp_vectors-is-the-start-of-the-vectors.patch
queue-4.14/arm64-entry-make-the-trampoline-cleanup-optional.patch
queue-4.14/arm64-add-silicon-errata.txt-entry-for-arm-erratum-1188873.patch
queue-4.14/kvm-arm64-add-templates-for-bhb-mitigation-sequences.patch
queue-4.14/arm64-entry-add-non-kpti-__bp_harden_el1_vectors-for-mitigations.patch
queue-4.14/arm64-add-id_aa64isar2_el1-sys-register.patch
queue-4.14/kvm-arm64-allow-smccc_arch_workaround_3-to-be-discovered-and-migrated.patch
queue-4.14/arm64-add-neoverse-n2-cortex-a710-cpu-part-definition.patch
queue-4.14/arm64-arch_timer-avoid-unused-function-warning.patch
queue-4.14/arm64-entry-move-trampoline-macros-out-of-ifdef-d-section.patch
queue-4.14/arm64-entry-allow-tramp_alias-to-access-symbols-after-the-4k-boundary.patch
queue-4.14/arm64-add-part-number-for-arm-cortex-a77.patch
queue-4.14/arm64-entry-move-the-trampoline-data-page-before-the-text-page.patch
queue-4.14/arm64-entry.s-add-ventry-overflow-sanity-checks.patch
queue-4.14/arm64-add-part-number-for-neoverse-n1.patch
queue-4.14/arm64-entry-add-vectors-that-have-the-bhb-mitigation-sequences.patch
queue-4.14/arm64-make-arm64_erratum_1188873-depend-on-compat.patch
queue-4.14/arm64-mitigate-spectre-style-branch-history-side-channels.patch
queue-4.14/arm64-entry-allow-the-trampoline-text-to-occupy-multiple-pages.patch
queue-4.14/arm64-proton-pack-report-spectre-bhb-vulnerabilities-as-part-of-spectre-v2.patch
queue-4.14/arm64-add-cortex-x2-cpu-part-definition.patch
queue-4.14/arm64-entry-make-the-kpti-trampoline-s-kpti-sequence-optional.patch



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux