|
@@ -89,8 +89,8 @@ int nr_ioapics;
|
|
|
/* IO APIC gsi routing info */
|
|
|
struct mp_ioapic_gsi mp_gsi_routing[MAX_IO_APICS];
|
|
|
|
|
|
-/* The last gsi number used */
|
|
|
-u32 gsi_end;
|
|
|
+/* The one past the highest gsi number used */
|
|
|
+u32 gsi_top;
|
|
|
|
|
|
/* MP IRQ source entries */
|
|
|
struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
|
|
@@ -1035,7 +1035,7 @@ static int pin_2_irq(int idx, int apic, int pin)
|
|
|
if (gsi >= NR_IRQS_LEGACY)
|
|
|
irq = gsi;
|
|
|
else
|
|
|
- irq = gsi_end + 1 + gsi;
|
|
|
+ irq = gsi_top + gsi;
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_X86_32
|
|
@@ -3853,7 +3853,7 @@ void __init probe_nr_irqs_gsi(void)
|
|
|
{
|
|
|
int nr;
|
|
|
|
|
|
- nr = gsi_end + 1 + NR_IRQS_LEGACY;
|
|
|
+ nr = gsi_top + NR_IRQS_LEGACY;
|
|
|
if (nr > nr_irqs_gsi)
|
|
|
nr_irqs_gsi = nr;
|
|
|
|
|
@@ -4294,8 +4294,8 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
|
|
|
*/
|
|
|
nr_ioapic_registers[idx] = entries;
|
|
|
|
|
|
- if (mp_gsi_routing[idx].gsi_end > gsi_end)
|
|
|
- gsi_end = mp_gsi_routing[idx].gsi_end;
|
|
|
+ if (mp_gsi_routing[idx].gsi_end >= gsi_top)
|
|
|
+ gsi_top = mp_gsi_routing[idx].gsi_end + 1;
|
|
|
|
|
|
printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
|
|
|
"GSI %d-%d\n", idx, mp_ioapics[idx].apicid,
|