From 54ba8a8d047a74609000d49bc676edc19bc1e5d6 Mon Sep 17 00:00:00 2001 From: Leonid Komarianskyi Date: Tue, 9 Sep 2025 10:09:20 +0000 Subject: [PATCH] xen/arm/irq: allow eSPI processing in the gic_interrupt function The gic_interrupt function is the main handler for processing IRQs. Currently, due to restrictive checks, it does not process interrupt numbers greater than 1019. This patch updates the condition to allow the handling of interrupts from the eSPI range. Signed-off-by: Leonid Komarianskyi Reviewed-by: Volodymyr Babchuk Acked-by: Julien Grall --- 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 9469c9d08c..260ee64cca 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -342,7 +342,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);