[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 0/8] ARM: VGIC/GIC separation cleanups
Hi, an updated version, focussing on the complaints Julien raised about the locking on assigned hardware IRQs. Patch 5/8 has been changed to address his concerns. I dropped the tag on this patch, also on 2/8 since I moved the per-CPU variable declaration into gic.h, as requested. Not sure if that is what people wanted, so please have a look. The rest of that patch is unchanged, and I checked that the code is still correct even after the rebase to staging. Please test and apply. Cheers, Andre Changelov v3->v4 01: added tags 02: remove extra header files, move per-CPU variable into gic.h 03, 04: unchanged 05: rework locking, rework dropping hardware IRQ connection 06: add ASSERT 07: unchanged 08: removed read_mostly attribute Changelog v2->v3: 01: reworked 02: rebased to match staging, added tag 03, 07: added tag 08: new, as suggested by Julien ================ By the original VGIC design, Xen differentiates between the actual VGIC emulation on one hand and the GIC hardware accesses on the other. It seems there were some deviations from that scheme (over time?), so at the moment we end up happily accessing VGIC specific data structures like struct pending_irq and struct vgic_irq_rank from pure GIC files like gic.c or even irq.c (try: git grep -l struct\ pending_irq xen/arch/arm). But any future VGIC rework will depend on a clean separation, so this series tries to clean this up. After this series there are no more references to VGIC structures from GIC files, at least for non-ITS code. The ITS is a beast own its own (blame the author) and will be addressed later. Andre Przywara (8): ARM: VGIC: drop unneeded gic_restore_pending_irqs() ARM: VGIC: split gic.c to observe hardware/virtual GIC separation ARM: VGIC: split up gic_dump_info() to cover virtual part separately ARM: VGIC: rework events_need_delivery() ARM: VGIC: factor out vgic_connect_hw_irq() ARM: VGIC: factor out vgic_get_hw_irq_desc() ARM: VGIC: rework gicv[23]_update_lr to not use pending_irq ARM: make nr_irqs a constant xen/arch/arm/Makefile | 1 + xen/arch/arm/domain.c | 1 + xen/arch/arm/gic-v2.c | 14 +- xen/arch/arm/gic-v3.c | 12 +- xen/arch/arm/gic-vgic.c | 461 ++++++++++++++++++++++++++++++++++++++++++++ xen/arch/arm/gic.c | 423 ++-------------------------------------- xen/arch/arm/irq.c | 9 +- xen/arch/arm/vgic.c | 11 ++ xen/include/asm-arm/event.h | 13 +- xen/include/asm-arm/gic.h | 8 +- xen/include/asm-arm/irq.h | 5 +- xen/include/asm-arm/vgic.h | 6 + 12 files changed, 521 insertions(+), 443 deletions(-) create mode 100644 xen/arch/arm/gic-vgic.c -- 2.14.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |