summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorChristoffer Dall <christoffer.dall@linaro.org>2015-10-17 17:55:12 +0200
committerChristoffer Dall <christoffer.dall@linaro.org>2015-10-20 18:06:34 +0200
commit544c572e03174438b6656ed24a4516b9a9d5f14a (patch)
treeebeb8f44e77a1f0f0b375ca97fcae8902684cd6b /lib
parentcff9211eb1a1f58ce7f5a2d596b617928fd4be0e (diff)
downloadlinux-544c572e03174438b6656ed24a4516b9a9d5f14a.tar.gz
linux-544c572e03174438b6656ed24a4516b9a9d5f14a.tar.xz
arm/arm64: KVM: Clear map->active on pend/active clear
When a guest reboots or offlines/onlines CPUs, it is not uncommon for it to clear the pending and active states of an interrupt through the emulated VGIC distributor. However, since the architected timers are defined by the architecture to be level triggered and the guest rightfully expects them to be that, but we emulate them as edge-triggered, we have to mimic level-triggered behavior for an edge-triggered virtual implementation. We currently do not signal the VGIC when the map->active field is true, because it indicates that the guest has already been signalled of the interrupt as required. Normally this field is set to false when the guest deactivates the virtual interrupt through the sync path. We also need to catch the case where the guest deactivates the interrupt through the emulated distributor, again allowing guests to boot even if the original virtual timer signal hit before the guest's GIC initialization sequence is run. Reviewed-by: Eric Auger <eric.auger@linaro.org> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions