Hi Julien, On 29.07.25 17:05, Julien Grall wrote: > Hi, > > On 24/07/2025 15:57, Leonid Komarianskyi wrote: >> To properly deactivate guest interrupts and allow them to be retriggered >> after the initial trigger, the LR needs to be updated. The current >> implementation ignores interrupts outside the range specified by the mask >> 0x3FF, which only covers IRQ numbers up to 1023. To enable processing of >> eSPI interrupts, this patch updates the mask to 0x13FF. >> >> Signed-off-by: Leonid Komarianskyi <leonid_komarians...@epam.com> >> --- >> xen/arch/arm/include/asm/gic_v3_defs.h | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/xen/arch/arm/include/asm/gic_v3_defs.h b/xen/arch/arm/ >> include/asm/gic_v3_defs.h >> index 7f769b38e3..2c02ddd287 100644 >> --- a/xen/arch/arm/include/asm/gic_v3_defs.h >> +++ b/xen/arch/arm/include/asm/gic_v3_defs.h >> @@ -206,7 +206,11 @@ >> #define ICH_LR_VIRTUAL_SHIFT 0 >> #define ICH_LR_CPUID_MASK 0x7 >> #define ICH_LR_CPUID_SHIFT 10 >> +#ifndef CONFIG_GICV3_ESPI >> #define ICH_LR_PHYSICAL_MASK 0x3ff >> +#else >> +#define ICH_LR_PHYSICAL_MASK 0x13ff >> +#endif > > Can't we use 0x13ff unconditionally? If not, then why is it fine to use > it on a system where GICv3 doesn't support? (I assume distros will want > to have it enabled). >> #define ICH_LR_PHYSICAL_SHIFT 32 >> #define ICH_LR_STATE_MASK 0x3 >> #define ICH_LR_STATE_SHIFT 62 > > Cheers, > You are absolutely right - we can use it unconditionally. So, I will remove the unnecessary #ifdef in v2.
Thanks for pointing that out. Cheers, Leonid