linux/virt/kvm/arm
Christoffer Dall 4a2c4da125 arm/arm64: KVM: Load the timer state when enabling the timer
After being lazy with saving/restoring the timer state, we defer that
work to vcpu_load and vcpu_put, which ensure that the timer state is
loaded on the hardware timers whenever the VCPU runs.

Unfortunately, we are failing to do that the first time vcpu_load()
runs, because the timer has not yet been enabled at that time.  As long
as the initialized timer state matches what happens to be in the
hardware (a disabled timer, because we never leave the timer screaming),
this does not show up as a problem, but is nevertheless incorrect.

The solution is simple; disable preemption while setting the timer to be
enabled, and call the timer load function when first enabling the timer.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2017-11-06 16:23:17 +01:00
..
hyp KVM: arm/arm64: Move timer save/restore out of the hyp code 2017-11-06 16:23:13 +01:00
vgic KVM: arm/arm64: Support calling vgic_update_irq_pending from irq context 2017-11-06 16:23:10 +01:00
aarch32.c
arch_timer.c arm/arm64: KVM: Load the timer state when enabling the timer 2017-11-06 16:23:17 +01:00
arm.c KVM: arm/arm64: Rework kvm_timer_should_fire 2017-11-06 16:23:17 +01:00
mmio.c
mmu.c KVM: arm/arm64: Fix guest external abort matching 2017-09-05 17:33:37 +02:00
perf.c
pmu.c KVM: arm/arm64: PMU: Fix overflow interrupt injection 2017-07-25 14:18:01 +01:00
psci.c
trace.h