linux_dsm_epyc7002/virt/kvm/arm/vgic
Andre Przywara df9f58fbea KVM: arm64: vgic-its: Implement ITS command queue command handlers
The connection between a device, an event ID, the LPI number and the
associated CPU is stored in in-memory tables in a GICv3, but their
format is not specified by the spec. Instead software uses a command
queue in a ring buffer to let an ITS implementation use its own
format.
Implement handlers for the various ITS commands and let them store
the requested relation into our own data structures. Those data
structures are protected by the its_lock mutex.
Our internal ring buffer read and write pointers are protected by the
its_cmd mutex, so that only one VCPU per ITS can handle commands at
any given time.
Error handling is very basic at the moment, as we don't have a good
way of communicating errors to the guest (usually an SError).
The INT command handler is missing from this patch, as we gain the
capability of actually injecting MSIs into the guest only later on.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Tested-by: Eric Auger <eric.auger@redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
2016-07-18 18:14:38 +01:00
..
vgic-init.c KVM: arm64: vgic-its: Connect LPIs to the VGIC emulation 2016-07-18 18:14:36 +01:00
vgic-irqfd.c KVM: arm/arm64: vgic-new: Wire up irqfd injection 2016-05-20 15:40:08 +02:00
vgic-its.c KVM: arm64: vgic-its: Implement ITS command queue command handlers 2016-07-18 18:14:38 +01:00
vgic-kvm-device.c KVM: arm64: vgic-its: Introduce new KVM ITS device 2016-07-18 18:14:35 +01:00
vgic-mmio-v2.c KVM: arm/arm64: vgic: Add refcounting for IRQs 2016-07-18 18:10:48 +01:00
vgic-mmio-v3.c KVM: arm64: vgic-its: Implement basic ITS register handlers 2016-07-18 18:14:36 +01:00
vgic-mmio.c KVM: arm64: vgic-its: Introduce ITS emulation file with MMIO framework 2016-07-18 18:14:35 +01:00
vgic-mmio.h KVM: arm64: vgic-its: Implement basic ITS register handlers 2016-07-18 18:14:36 +01:00
vgic-v2.c KVM: arm/arm64: vgic: Add refcounting for IRQs 2016-07-18 18:10:48 +01:00
vgic-v3.c KVM: arm64: vgic-its: Connect LPIs to the VGIC emulation 2016-07-18 18:14:36 +01:00
vgic.c KVM: arm64: vgic-its: Connect LPIs to the VGIC emulation 2016-07-18 18:14:36 +01:00
vgic.h KVM: arm64: vgic-its: Read initial LPI pending table 2016-07-18 18:14:37 +01:00