KVM: arm-vgic: Support unqueueing of LRs to the dist
authorChristoffer Dall <christoffer.dall@linaro.org>
Sat, 16 Nov 2013 04:51:31 +0000 (20:51 -0800)
committerChristoffer Dall <christoffer.dall@linaro.org>
Sat, 21 Dec 2013 18:01:44 +0000 (10:01 -0800)
commitcbd333a4bfd0d93bba36d46a0e4e7979228873a6
tree700a2000d496cbca1a5d12b6ec04195be91f92fb
parentc07a0191ef2de1f9510f12d1f88e3b0b5cd8d66f
KVM: arm-vgic: Support unqueueing of LRs to the dist

To properly access the VGIC state from user space it is very unpractical
to have to loop through all the LRs in all register access functions.
Instead, support moving all pending state from LRs to the distributor,
but leave active state LRs alone.

Note that to accurately present the active and pending state to VCPUs
reading these distributor registers from a live VM, we would have to
stop all other VPUs than the calling VCPU and ask each CPU to unqueue
their LR state onto the distributor and add fields to track active state
on the distributor side as well.  We don't have any users of such
functionality yet and there are other inaccuracies of the GIC emulation,
so don't provide accurate synchronized access to this state just yet.
However, when the time comes, having this function should help.

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