diff options
author | Yinghai Lu <yinghai@kernel.org> | 2009-01-13 01:39:24 (GMT) |
---|---|---|
committer | Mike Travis <travis@sgi.com> | 2009-01-13 01:39:24 (GMT) |
commit | 4a046d1754ee6ebb6f399696805ed61ea0444d4c (patch) | |
tree | 9b9e8e63d9490aea4c2f06263ad541cb8115eb63 /arch/x86/kernel/io_apic.c | |
parent | e65e49d0f3714f4a6a42f6f6a19926ba33fcda75 (diff) | |
download | linux-fsl-qoriq-4a046d1754ee6ebb6f399696805ed61ea0444d4c.tar.xz |
x86: arch_probe_nr_irqs
Impact: save RAM with large NR_CPUS, get smaller nr_irqs
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Mike Travis <travis@sgi.com>
Diffstat (limited to 'arch/x86/kernel/io_apic.c')
-rw-r--r-- | arch/x86/kernel/io_apic.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/kernel/io_apic.c b/arch/x86/kernel/io_apic.c index ae806380..1579869 100644 --- a/arch/x86/kernel/io_apic.c +++ b/arch/x86/kernel/io_apic.c @@ -3850,6 +3850,22 @@ void __init probe_nr_irqs_gsi(void) nr_irqs_gsi = nr; } +#ifdef CONFIG_SPARSE_IRQ +int __init arch_probe_nr_irqs(void) +{ + int nr; + + nr = ((8 * nr_cpu_ids) > (32 * nr_ioapics) ? + (NR_VECTORS + (8 * nr_cpu_ids)) : + (NR_VECTORS + (32 * nr_ioapics))); + + if (nr < nr_irqs && nr > nr_irqs_gsi) + nr_irqs = nr; + + return 0; +} +#endif + /* -------------------------------------------------------------------------- ACPI-based IOAPIC Configuration -------------------------------------------------------------------------- */ |