summaryrefslogtreecommitdiff
path: root/arch/arm64/include/asm/fixmap.h
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2017-11-14 17:14:17 +0300
committerWill Deacon <will.deacon@arm.com>2017-12-11 16:40:50 +0300
commit51a0048beb449682d632d0af52a515adb9f9882e (patch)
treea582659ee2e0cf0a7913522ebfedd71841977f64 /arch/arm64/include/asm/fixmap.h
parentc7b9adaf85f818d747eeff5145eb4095ccd587fb (diff)
downloadlinux-51a0048beb449682d632d0af52a515adb9f9882e.tar.xz
arm64: mm: Map entry trampoline into trampoline and kernel page tables
The exception entry trampoline needs to be mapped at the same virtual address in both the trampoline page table (which maps nothing else) and also the kernel page table, so that we can swizzle TTBR1_EL1 on exceptions from and return to EL0. This patch maps the trampoline at a fixed virtual address in the fixmap area of the kernel virtual address space, which allows the kernel proper to be randomized with respect to the trampoline when KASLR is enabled. Reviewed-by: Mark Rutland <mark.rutland@arm.com> Tested-by: Laura Abbott <labbott@redhat.com> Tested-by: Shanker Donthineni <shankerd@codeaurora.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/fixmap.h')
-rw-r--r--arch/arm64/include/asm/fixmap.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm64/include/asm/fixmap.h b/arch/arm64/include/asm/fixmap.h
index 4052ec39e8db..8119b49be98d 100644
--- a/arch/arm64/include/asm/fixmap.h
+++ b/arch/arm64/include/asm/fixmap.h
@@ -58,6 +58,10 @@ enum fixed_addresses {
FIX_APEI_GHES_NMI,
#endif /* CONFIG_ACPI_APEI_GHES */
+#ifdef CONFIG_UNMAP_KERNEL_AT_EL0
+ FIX_ENTRY_TRAMP_TEXT,
+#define TRAMP_VALIAS (__fix_to_virt(FIX_ENTRY_TRAMP_TEXT))
+#endif /* CONFIG_UNMAP_KERNEL_AT_EL0 */
__end_of_permanent_fixed_addresses,
/*