arm64: entry: Add fake CPU feature for unmapping the kernel at EL0
authorWill Deacon <will.deacon@arm.com>
Tue, 14 Nov 2017 14:38:19 +0000 (14:38 +0000)
committerWill Deacon <will.deacon@arm.com>
Mon, 11 Dec 2017 13:41:06 +0000 (13:41 +0000)
commitea1e3de85e94d711f63437c04624aa0e8de5c8b3
treef390c46a0ddda1975269041456090a1f09e1ba35
parent18011eac28c7cb31c87b86b7d0e5b01894405c7f
arm64: entry: Add fake CPU feature for unmapping the kernel at EL0

Allow explicit disabling of the entry trampoline on the kernel command
line (kpti=off) by adding a fake CPU feature (ARM64_UNMAP_KERNEL_AT_EL0)
that can be used to toggle the alternative sequences in our entry code and
avoid use of the trampoline altogether if desired. This also allows us to
make use of a static key in arm64_kernel_unmapped_at_el0().

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>
arch/arm64/include/asm/cpucaps.h
arch/arm64/include/asm/mmu.h
arch/arm64/kernel/cpufeature.c
arch/arm64/kernel/entry.S