mbox series

[Xen-devel,v3,0/8] ARM: VGIC/GIC separation cleanups

Message ID 20180124181058.6157-1-andre.przywara@linaro.org
Headers show
Series ARM: VGIC/GIC separation cleanups | expand

Message

Andre Przywara Jan. 24, 2018, 6:10 p.m. UTC
Hi,

minor updates to this series. Three patches have been merged already.
Patch 1/8 (was v2 04/10) has been significantly reworked to address
Stefano's comments, see the reply to his v2 comment.
The rest has just been rebased and got tagged, if appropriate.
The last patch is an improvement to the already merged 02/10, as suggested
by Julien.

Please test and apply.

Cheers,
Andre

Changelog:
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     | 468 ++++++++++++++++++++++++++++++++++++++++++++
 xen/arch/arm/gic.c          | 421 +--------------------------------------
 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   |   5 +-
 xen/include/asm-arm/irq.h   |   5 +-
 xen/include/asm-arm/vgic.h  |   6 +
 12 files changed, 521 insertions(+), 445 deletions(-)
 create mode 100644 xen/arch/arm/gic-vgic.c