]> 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)
commit5e6b53d3cf8238e638e015d402866ece3c7c1761
tree3330f4c43a6d3a274186f729489b4aea5fa71621
parent127c19277d2ab617b1d0e374bfdcd2495128a300
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