On 04.09.2025 23:51, Jason Andryuk wrote: > io_apic_level_ack_pending() will end up in an infinite loop if > entry->pin == -1. entry does not change, so it will keep reading -1. > > Switched to breaking out of the loop. > > Fixes: f821102450a1 ("x86: IRQ Migration logic enhancement.") > Signed-off-by: Jason Andryuk <jason.andr...@amd.com> > --- > Noticed during code inspection.
Well spotted, just that ... > --- a/xen/arch/x86/io_apic.c > +++ b/xen/arch/x86/io_apic.c > @@ -1715,7 +1715,7 @@ static bool io_apic_level_ack_pending(unsigned int irq) > > pin = entry->pin; > if (pin == -1) > - continue; > + break; ... we shouldn't terminate the loop here, but rather continue with the next entry in the list (if any). Hence presumably why "continue" was used, without achieving the intended effect. Jan