linux/arch/arm/kvm
Marc Zyngier 6a077e4ab9 ARM: KVM: perform save/restore of PAR
Not saving PAR is an unfortunate oversight. If the guest performs
an AT* operation and gets scheduled out before reading the result
of the translation from PAR, it could become corrupted by another
guest or the host.

Saving this register is made slightly more complicated as KVM also
uses it on the permission fault handling path, leading to an ugly
"stash and restore" sequence. Fortunately, this is already a slow
path so we don't really care. Also, Linux doesn't do any AT*
operation, so Linux guests are not impacted by this bug.

  [ Slightly tweaked to use an even register as first operand to ldrd
    and strd operations in interrupts_head.S - Christoffer ]

Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2013-06-26 10:50:04 -07:00
..
arm.c ARM: KVM: use phys_addr_t instead of unsigned long long for HYP PGDs 2013-06-26 10:50:03 -07:00
coproc_a15.c
coproc.c ARM: KVM: perform save/restore of PAR 2013-06-26 10:50:04 -07:00
coproc.h
emulate.c
guest.c
handle_exit.c ARM: KVM: Don't handle PSCI calls via SMC 2013-06-26 10:50:02 -07:00
init.S
interrupts_head.S ARM: KVM: perform save/restore of PAR 2013-06-26 10:50:04 -07:00
interrupts.S ARM: KVM: perform save/restore of PAR 2013-06-26 10:50:04 -07:00
Kconfig
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 ARM: KVM: get rid of S2_PGD_SIZE 2013-06-26 10:50:04 -07:00
perf.c
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