The do_IRQ() function is the main handler for processing IRQs. Currently, due to restrictive checks, it does not process interrupt numbers greater than 1024. This patch updates the condition to allow the handling of interrupts from the eSPI range.
Signed-off-by: Leonid Komarianskyi <leonid_komarians...@epam.com> --- Changes in V2: - no changes --- xen/arch/arm/gic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index 47fccf21d8..7186c3d40a 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -341,7 +341,7 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq) /* Reading IRQ will ACK it */ irq = gic_hw_ops->read_irq(); - if ( likely(irq >= GIC_SGI_STATIC_MAX && irq < 1020) ) + if ( likely(irq >= GIC_SGI_STATIC_MAX && irq < 1020) || is_espi(irq) ) { isb(); do_IRQ(regs, irq, is_fiq); -- 2.34.1