x86: fix off-by-one in nr_irqs_gsi calculation highest_gsi() returns the last valid GSI, not a count. Signed-off-by: Jan Beulich --- a/xen/arch/x86/io_apic.c +++ b/xen/arch/x86/io_apic.c @@ -2531,7 +2531,9 @@ void __init init_ioapic_mappings(void) } } - nr_irqs_gsi = max(nr_irqs_gsi, highest_gsi()); + i = highest_gsi(); + if ( i >= nr_irqs_gsi ) + nr_irqs_gsi = i + 1; if ( max_gsi_irqs == 0 ) max_gsi_irqs = nr_irqs ? nr_irqs / 8 : PAGE_SIZE;