]> git.baikalelectronics.ru Git - kernel.git/commit
arm/arm64: KVM: vgic: Move active state handling to flush_hwstate
authorChristoffer Dall <christoffer.dall@linaro.org>
Fri, 4 Sep 2015 14:24:38 +0000 (16:24 +0200)
committerMarc Zyngier <marc.zyngier@arm.com>
Fri, 4 Sep 2015 15:26:52 +0000 (16:26 +0100)
commitd53b7f320dd4bb68437fe5aba8ddac7486443994
tree3330f4c43a6d3a274186f729489b4aea5fa71621
parent44aab3b72162c6dab23f12bac4f2ea7b34da8c55
arm/arm64: KVM: vgic: Move active state handling to flush_hwstate

We currently set the physical active state only when we *inject* a new
pending virtual interrupt, but this is actually not correct, because we
could have been preempted and run something else on the system that
resets the active state to clear.  This causes us to run the VM with the
timer set to fire, but without setting the physical active state.

The solution is to always check the LR configurations, and we if have a
mapped interrupt in the LR in either the pending or active state
(virtual), then set the physical active state.

Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
virt/kvm/arm/vgic.c