linux/arch/arm64/kvm
Marc Zyngier dedf97e8ff arm64: KVM: fix 64bit CP15 VM access for 32bit guests
Commit f0a3eaff71 (ARM64: KVM: fix big endian issue in
access_vm_reg for 32bit guest) changed the way we handle CP15
VM accesses, so that all 64bit accesses are done via vcpu_sys_reg.

This looks like a good idea as it solves indianness issues in an
elegant way, except for one small detail: the register index is
doesn't refer to the same array! We end up corrupting some random
data structure instead.

Fix this by reverting to the original code, except for the introduction
of a vcpu_cp15_64_high macro that deals with the endianness thing.

Tested on Juno with 32bit SMP guests.

Cc: Victor Kamensky <victor.kamensky@linaro.org>
Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2014-08-01 14:05:06 +02:00
..
emulate.c arm64: KVM: 32bit conditional execution emulation 2013-06-12 16:42:15 +01:00
guest.c arm64: KVM: allow export and import of generic timer regs 2014-07-11 04:46:55 -07:00
handle_exit.c arm64: KVM: common infrastructure for handling AArch32 CP14/CP15 2014-07-11 04:57:44 -07:00
hyp-init.S arm64: Add boot time configuration of Intermediate Physical Address size 2014-03-13 11:22:36 +00:00
hyp.S arm64: KVM: enable trapping of all debug registers 2014-07-11 04:57:46 -07:00
inject_fault.c arm64: KVM: 32bit guest fault injection 2013-06-12 16:42:18 +01:00
Kconfig arm64: KVM: Add Kconfig option for max VCPUs per-Guest 2013-12-28 10:28:50 +00:00
Makefile arm64: KVM: vgic: enable GICv2 emulation on top on GICv3 hardware 2014-07-11 04:57:37 -07:00
regmap.c arm64: KVM: 32bit GP register access 2013-06-12 16:42:14 +01:00
reset.c arm64: KVM: enable initialization of a 32bit vcpu 2013-06-12 16:42:18 +01:00
sys_regs_generic_v8.c arm64: KVM: Enable minimalistic support for Cortex-A53 2014-05-25 20:05:30 +02:00
sys_regs.c arm64: KVM: fix 64bit CP15 VM access for 32bit guests 2014-08-01 14:05:06 +02:00
sys_regs.h arm64: KVM: allows discrimination of AArch32 sysreg access 2014-03-03 01:15:21 +00:00
vgic-v2-switch.S arm64: KVM: split GICv2 world switch from hyp code 2014-07-11 04:57:36 -07:00
vgic-v3-switch.S arm64: KVM: GICv3: move system register access to msr_s/mrs_s 2014-07-31 15:52:14 +02:00