|
@@ -89,6 +89,9 @@ 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;
|
|
|
+
|
|
|
/* MP IRQ source entries */
|
|
|
struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
|
|
|
|
|
@@ -4312,6 +4315,9 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
|
|
|
mp_gsi_routing[idx].gsi_end = gsi_base +
|
|
|
io_apic_get_redir_entries(idx) - 1;
|
|
|
|
|
|
+ if (mp_gsi_routing[idx].gsi_end > gsi_end)
|
|
|
+ gsi_end = mp_gsi_routing[idx].gsi_end;
|
|
|
+
|
|
|
printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
|
|
|
"GSI %d-%d\n", idx, mp_ioapics[idx].apicid,
|
|
|
mp_ioapics[idx].apicver, mp_ioapics[idx].apicaddr,
|