|
@@ -118,9 +118,6 @@ struct mpc_intsrc mp_irqs[MAX_IRQ_SOURCES];
|
|
/* # of MP IRQ source entries */
|
|
/* # of MP IRQ source entries */
|
|
int mp_irq_entries;
|
|
int mp_irq_entries;
|
|
|
|
|
|
-/* GSI interrupts */
|
|
|
|
-static int nr_irqs_gsi = NR_IRQS_LEGACY;
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_EISA
|
|
#ifdef CONFIG_EISA
|
|
int mp_bus_id_to_type[MAX_MP_BUSSES];
|
|
int mp_bus_id_to_type[MAX_MP_BUSSES];
|
|
#endif
|
|
#endif
|
|
@@ -3326,20 +3323,11 @@ static int __init io_apic_get_redir_entries(int ioapic)
|
|
return reg_01.bits.entries + 1;
|
|
return reg_01.bits.entries + 1;
|
|
}
|
|
}
|
|
|
|
|
|
-static void __init probe_nr_irqs_gsi(void)
|
|
|
|
-{
|
|
|
|
- int nr;
|
|
|
|
-
|
|
|
|
- nr = gsi_top + NR_IRQS_LEGACY;
|
|
|
|
- if (nr > nr_irqs_gsi)
|
|
|
|
- nr_irqs_gsi = nr;
|
|
|
|
-
|
|
|
|
- printk(KERN_DEBUG "nr_irqs_gsi: %d\n", nr_irqs_gsi);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
unsigned int arch_dynirq_lower_bound(unsigned int from)
|
|
unsigned int arch_dynirq_lower_bound(unsigned int from)
|
|
{
|
|
{
|
|
- return from < nr_irqs_gsi ? nr_irqs_gsi : from;
|
|
|
|
|
|
+ unsigned int min = gsi_top + NR_IRQS_LEGACY;
|
|
|
|
+
|
|
|
|
+ return from < min ? min : from;
|
|
}
|
|
}
|
|
|
|
|
|
int __init arch_probe_nr_irqs(void)
|
|
int __init arch_probe_nr_irqs(void)
|
|
@@ -3349,12 +3337,12 @@ int __init arch_probe_nr_irqs(void)
|
|
if (nr_irqs > (NR_VECTORS * nr_cpu_ids))
|
|
if (nr_irqs > (NR_VECTORS * nr_cpu_ids))
|
|
nr_irqs = NR_VECTORS * nr_cpu_ids;
|
|
nr_irqs = NR_VECTORS * nr_cpu_ids;
|
|
|
|
|
|
- nr = nr_irqs_gsi + 8 * nr_cpu_ids;
|
|
|
|
|
|
+ nr = (gsi_top + NR_IRQS_LEGACY) + 8 * nr_cpu_ids;
|
|
#if defined(CONFIG_PCI_MSI) || defined(CONFIG_HT_IRQ)
|
|
#if defined(CONFIG_PCI_MSI) || defined(CONFIG_HT_IRQ)
|
|
/*
|
|
/*
|
|
* for MSI and HT dyn irq
|
|
* for MSI and HT dyn irq
|
|
*/
|
|
*/
|
|
- nr += nr_irqs_gsi * 16;
|
|
|
|
|
|
+ nr += (gsi_top + NR_IRQS_LEGACY) * 16;
|
|
#endif
|
|
#endif
|
|
if (nr < nr_irqs)
|
|
if (nr < nr_irqs)
|
|
nr_irqs = nr;
|
|
nr_irqs = nr;
|
|
@@ -3627,8 +3615,6 @@ fake_ioapic_page:
|
|
ioapic_res->end = ioapic_phys + IO_APIC_SLOT_SIZE - 1;
|
|
ioapic_res->end = ioapic_phys + IO_APIC_SLOT_SIZE - 1;
|
|
ioapic_res++;
|
|
ioapic_res++;
|
|
}
|
|
}
|
|
-
|
|
|
|
- probe_nr_irqs_gsi();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
void __init ioapic_insert_resources(void)
|
|
void __init ioapic_insert_resources(void)
|