linux/arch/arm/kvm
Christoffer Dall 240e99cbd0 ARM: KVM: Fix 64-bit coprocessor handling
The PAR was exported as CRn == 7 and CRm == 0, but in fact the primary
coprocessor register number was determined by CRm for 64-bit coprocessor
registers as the user space API was modeled after the coprocessor
access instructions (see the ARM ARM rev. C - B3-1445).

However, just changing the CRn to CRm breaks the sorting check when
booting the kernel, because the internal kernel logic always treats CRn
as the primary register number, and it makes the table sorting
impossible to understand for humans.

Alternatively we could change the logic to always have CRn == CRm, but
that becomes unclear in the number of ways we do look up of a coprocessor
register.  We could also have a separate 64-bit table but that feels
somewhat over-engineered.  Instead, keep CRn the primary representation
of the primary coproc. register number in-kernel and always export the
primary number as CRm as per the existing user space ABI.

Note: The TTBR registers just magically worked because they happened to
follow the CRn(0) regs and were considered CRn(0) in the in-kernel
representation.

Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2013-08-06 11:32:30 -07:00
..
arm.c KVM fixes for 3.11 2013-07-03 13:21:40 -07:00
coproc_a15.c ARM: KVM: Fix 64-bit coprocessor handling 2013-08-06 11:32:30 -07:00
coproc.c ARM: KVM: Fix 64-bit coprocessor handling 2013-08-06 11:32:30 -07:00
coproc.h ARM: KVM: Fix 64-bit coprocessor handling 2013-08-06 11:32:30 -07:00
emulate.c ARM: KVM: move kvm_handle_wfi to handle_exit.c 2013-03-06 15:48:45 -08:00
guest.c ARM: KVM: move kvm_target_cpu to guest.c 2013-03-06 15:48:44 -08:00
handle_exit.c ARM: KVM: Don't handle PSCI calls via SMC 2013-06-26 10:50:02 -07:00
init.S ARM: KVM: switch to a dual-step HYP init code 2013-04-28 22:23:10 -07:00
interrupts_head.S KVM fixes for 3.11 2013-07-03 13:21:40 -07:00
interrupts.S ARM: KVM: clear exclusive monitor on all exception returns 2013-06-26 10:50:05 -07:00
Kconfig ARM: kvm: don't include drivers/virtio/Kconfig 2013-06-26 10:50:06 -07:00
Makefile KVM: get rid of $(addprefix ../../../virt/kvm/, ...) in Makefiles 2013-05-19 15:14:00 +03:00
mmio.c ARM: KVM: don't special case PC when doing an MMIO 2013-06-26 10:50:03 -07:00
mmu.c KVM fixes for 3.11 2013-07-03 13:21:40 -07:00
perf.c ARM: KVM: add support for minimal host vs guest profiling 2013-04-28 21:44:01 -07:00
psci.c ARM: KVM: Don't handle PSCI calls via SMC 2013-06-26 10:50:02 -07:00
reset.c ARM: KVM: Allow host virt timer irq to be different from guest timer virt irq 2013-06-26 10:50:02 -07:00
trace.h KVM: ARM: Handle I/O aborts 2013-01-23 13:29:17 -05:00