linux/virt/kvm/arm/vgic
Andre Przywara 7d450e2821 KVM: arm/arm64: vgic-new: Add userland access to VGIC dist registers
Userland may want to save and restore the state of the in-kernel VGIC,
so we provide the code which takes a userland request and translate
that into calls to our MMIO framework.

From Christoffer:
When accessing the VGIC state from userspace we really don't want a VCPU
to be messing with the state at the same time, and the API specifies
that we should return -EBUSY if any VCPUs are running.
Check and prevent VCPUs from running by grabbing their mutexes, one by
one, and error out if we fail.
(Note: This could potentially be simplified to just do a simple check
and see if any VCPUs are running, and return -EBUSY then, without
enforcing the locking throughout the duration of the uaccess, if we
think that taking/releasing all these mutexes for every single GIC
register access is too heavyweight.)

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
2016-05-20 15:40:03 +02:00
..
vgic-kvm-device.c KVM: arm/arm64: vgic-new: Add userland access to VGIC dist registers 2016-05-20 15:40:03 +02:00
vgic-mmio-v2.c KVM: arm/arm64: vgic-new: Export register access interface 2016-05-20 15:40:03 +02:00
vgic-mmio-v3.c KVM: arm/arm64: vgic-new: Add GICv3 SGI system register trap handler 2016-05-20 15:39:59 +02:00
vgic-mmio.c KVM: arm/arm64: vgic-new: Add GICv3 MMIO handling framework 2016-05-20 15:39:56 +02:00
vgic-mmio.h KVM: arm/arm64: vgic-new: Add GICv3 MMIO handling framework 2016-05-20 15:39:56 +02:00
vgic-v2.c KVM: arm/arm64: vgic-new: Add GICv2 world switch backend 2016-05-20 15:39:48 +02:00
vgic-v3.c KVM: arm/arm64: vgic-new: Add GICv3 world switch backend 2016-05-20 15:39:48 +02:00
vgic.c KVM: arm/arm64: vgic-new: Add CTLR, TYPER and IIDR handlers 2016-05-20 15:39:50 +02:00
vgic.h KVM: arm/arm64: vgic-new: Export register access interface 2016-05-20 15:40:03 +02:00