linux/arch/arm/kvm/hyp
Marc Zyngier 1edb632133 ARM: KVM: Fix idmap stub entry when running Thumb-2 code
When entering the hyp stub implemented in the idmap, we try to
be mindful of the fact that we could be running a Thumb-2 kernel
by adding 1 to the address we compute. Unfortunately, the assembler
also knows about this trick, and has already generated an address
that has bit 0 set in the litteral pool.

Our superfluous correction ends up confusing the CPU entierely,
as we now branch to the stub in ARM mode instead of Thumb, and on
a possibly unaligned address for good measure. From that point,
nothing really good happens.

The obvious fix in to remove this stupid target PC correction.

Fixes: 6bebcecb6c ("ARM: KVM: Allow the main HYP code to use the init hyp stub implementation")
Reported-by: Christoffer Dall <cdall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <cdall@linaro.org>
2017-04-20 20:17:57 +02:00
..
banked-sr.c ARM: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h 2016-02-29 18:34:18 +00:00
cp15-sr.c ARM: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h 2016-02-29 18:34:18 +00:00
entry.S arm: KVM: Handle async aborts delivered while at HYP 2016-09-08 12:53:00 +02:00
hyp-entry.S ARM: KVM: Fix idmap stub entry when running Thumb-2 code 2017-04-20 20:17:57 +02:00
Makefile ARM: KVM: Support vgic-v3 2016-09-22 13:22:21 +02:00
s2-setup.c ARM: KVM: Move kvm/hyp/hyp.h to include/asm/kvm_hyp.h 2016-02-29 18:34:18 +00:00
switch.c ARM: KVM: Support vgic-v3 2016-09-22 13:22:21 +02:00
tlb.c arm/arm64: KVM: Perform local TLB invalidation when multiplexing vcpus on a single CPU 2016-11-04 17:56:28 +00:00
vfp.S ARM: KVM: Add VFP save/restore 2016-02-29 18:34:13 +00:00