linux/virt/kvm/arm/vgic
Andre Przywara 2891a7dfb6 KVM: arm64: vgic-its: Implement MSI injection in ITS emulation
When userland wants to inject an MSI into the guest, it uses the
KVM_SIGNAL_MSI ioctl, which carries the doorbell address along with
the payload and the device ID.
With the help of the KVM IO bus framework we learn the corresponding
ITS from the doorbell address. We then use our wrapper functions to
iterate the linked lists and find the proper Interrupt Translation Table
Entry (ITTE) and thus the corresponding struct vgic_irq to finally set
the pending bit.
We also provide the handler for the ITS "INT" command, which allows a
guest to trigger an MSI via the ITS command queue. Since this one knows
about the right ITS already, we directly call the MMIO handler function
without using the kvm_io_bus framework.

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 MSI injection in ITS emulation 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: Implement MSI injection in ITS emulation 2016-07-18 18:14:38 +01:00