summaryrefslogtreecommitdiffstats
path: root/virt/Makefile
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2016-07-15 12:43:36 +0100
committerMarc Zyngier <marc.zyngier@arm.com>2016-07-18 18:14:38 +0100
commitdf9f58fbea9bc656b5a7770c885c97b26255b234 (patch)
treeb47cc6b90c6d4613fb2eb861c9c72f7936a14421 /virt/Makefile
parentf9f77af9e2a551ac34eb0eb40630d91d6dbd4295 (diff)
downloadlinux-df9f58fbea9bc656b5a7770c885c97b26255b234.tar.bz2
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>
Diffstat (limited to 'virt/Makefile')
0 files changed, 0 insertions, 0 deletions