• Christoffer Dall's avatar
    KVM: arm/arm64: vgic-new: Implement virtual IRQ injection · 81eeb95d
    Christoffer Dall authored
    Provide a vgic_queue_irq_unlock() function which decides whether a
    given IRQ needs to be queued to a VCPU's ap_list.
    This should be called whenever an IRQ becomes pending or enabled,
    either as a result of userspace injection, from in-kernel emulated
    devices like the architected timer or from MMIO accesses to the
    distributor emulation.
    Also provides the necessary functions to allow userland to inject an
    IRQ to a guest.
    Since this is the first code that starts using our locking mechanism, we
    add some (hopefully) clear documentation of our locking strategy and
    requirements along with this patch.
    Signed-off-by: default avatarChristoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: default avatarAndre Przywara <andre.przywara@arm.com>
    81eeb95d
vgic.c 6.64 KB