linux/arch/arm64
Ard Biesheuvel 0cd3defe0a arm64: kernel: perform relocation processing from ID map
Refactor the relocation processing so that the code executes from the
ID map while accessing the relocation tables via the virtual mapping.
This way, we can use literals containing virtual addresses as before,
instead of having to use convoluted absolute expressions.

For symmetry with the secondary code path, the relocation code and the
subsequent jump to the virtual entry point are implemented in a function
called __primary_switch(), and __mmap_switched() is renamed to
__primary_switched(). Also, the call sequence in stext() is aligned with
the one in secondary_startup(), by replacing the awkward 'adr_l lr' and
'b cpu_setup' sequence with a simple branch and link.

Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2016-04-26 12:21:54 +01:00
..
boot ARM: DT changes, part 2 2016-03-24 19:01:38 -07:00
configs arm64: defconfig: updates for 4.6 2016-03-29 16:56:00 +01:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2016-03-17 11:22:54 -07:00
include arm64: Verify CPU errata work arounds on hotplugged CPU 2016-04-25 15:14:03 +01:00
kernel arm64: kernel: perform relocation processing from ID map 2016-04-26 12:21:54 +01:00
kvm arm64: kvm: 4.6-rc1: Fix VTCR_EL2 VS setting 2016-03-30 22:09:15 +02:00
lib arm64 updates for 4.6: 2016-03-17 20:03:47 -07:00
mm arm64: ptdump: add region marker for kasan shadow region 2016-04-25 12:05:21 +01:00
net arm64: bpf: add extra pass to handle faulty codegen 2016-01-17 19:15:26 -05:00
xen xen/arm: introduce HYPERVISOR_platform_op on arm and arm64 2015-12-21 14:40:56 +00:00
Kconfig arm64: Kconfig: remove redundant HAVE_ARCH_TRANSPARENT_HUGEPAGE definition 2016-04-20 12:16:50 +01:00
Kconfig.debug arm64: simplify kernel segment mapping granularity 2016-04-14 18:11:44 +01:00
Kconfig.platforms Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-03-24 10:29:44 -07:00
Makefile arm64 updates for 4.6: 2016-03-17 20:03:47 -07:00