Valentin recently pointed out that that relying on SW-based retrigger with any of the GIC interrupt controllers is both inefficient and slightly broken, as it messes the GIC's own state machine.
For this to work with the hierarchical irqchip model that the GIC uses, we need check_irq_resend grow an understanding of hierarchies, something it has been lacking for some time. The 3 other patches simply implement the HW resend callbacks, and finally prevent any SW resend for the GICs. Unless anyone objects, I plan to take this into 5.10. * From v1: - Dropped most of the patches in favour of a teaching the core kernel to use irq_chip_retriger_hierarchy() Marc Zyngier (2): genirq: Walk the irq_data hierarchy when resending an interrupt irqchip/git-v3-its: Implement irq_retrigger callback for device-triggered LPIs Valentin Schneider (2): irqchip/gic-v2, v3: Implement irq_chip->irq_retrigger() irqchip/gic-v2, v3: Prevent SW resends entirely drivers/irqchip/irq-gic-v3-its.c | 6 ++++++ drivers/irqchip/irq-gic-v3.c | 12 +++++++++++- drivers/irqchip/irq-gic.c | 12 +++++++++++- kernel/irq/resend.c | 15 +++++++++++++-- 4 files changed, 41 insertions(+), 4 deletions(-) -- 2.28.0