]> xenbits.xensource.com Git - xen.git/commit
ARM: GICv3: introduce separate pending_irq structs for LPIs
authorAndre Przywara <andre.przywara@arm.com>
Mon, 5 Sep 2016 13:13:22 +0000 (14:13 +0100)
committerStefano Stabellini <sstabellini@kernel.org>
Wed, 14 Jun 2017 18:38:37 +0000 (11:38 -0700)
commit71c23f4d9f550521a34e945bd97a386ee1c0a1ce
treef6d293b734df49bb068f6b307b9189a52749b596
parent56e1b3ebc92068aa05c3bd5b532b89e9c36f2de9
ARM: GICv3: introduce separate pending_irq structs for LPIs

For the same reason that allocating a struct irq_desc for each
possible LPI is not an option, having a struct pending_irq for each LPI
is also not feasible. We only care about mapped LPIs, so we can get away
with having struct pending_irq's only for them.
Maintain a radix tree per domain where we drop the pointer to the
respective pending_irq. The index used is the virtual LPI number.
The memory for the actual structures has been allocated already per
device at device mapping time.
Teach the existing VGIC functions to find the right pointer when being
given a virtual LPI number.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>
xen/arch/arm/vgic-v2.c
xen/arch/arm/vgic-v3.c
xen/arch/arm/vgic.c
xen/include/asm-arm/domain.h
xen/include/asm-arm/vgic.h