aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/include/asm/irq_vectors.h12
-rw-r--r--arch/x86/kernel/apic/io_apic.c2
2 files changed, 7 insertions, 7 deletions
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index 4611f085cd43..3ab43df089cd 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -154,21 +154,21 @@ static inline int invalid_vm86_irq(int irq)
154 154
155#define NR_IRQS_LEGACY 16 155#define NR_IRQS_LEGACY 16
156 156
157#define CPU_VECTOR_LIMIT ( 8 * NR_CPUS )
158#define IO_APIC_VECTOR_LIMIT ( 32 * MAX_IO_APICS ) 157#define IO_APIC_VECTOR_LIMIT ( 32 * MAX_IO_APICS )
159 158
160#ifdef CONFIG_X86_IO_APIC 159#ifdef CONFIG_X86_IO_APIC
161# ifdef CONFIG_SPARSE_IRQ 160# ifdef CONFIG_SPARSE_IRQ
161# define CPU_VECTOR_LIMIT (64 * NR_CPUS)
162# define NR_IRQS \ 162# define NR_IRQS \
163 (CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ? \ 163 (CPU_VECTOR_LIMIT > IO_APIC_VECTOR_LIMIT ? \
164 (NR_VECTORS + CPU_VECTOR_LIMIT) : \ 164 (NR_VECTORS + CPU_VECTOR_LIMIT) : \
165 (NR_VECTORS + IO_APIC_VECTOR_LIMIT)) 165 (NR_VECTORS + IO_APIC_VECTOR_LIMIT))
166# else 166# else
167# if NR_CPUS < MAX_IO_APICS 167# define CPU_VECTOR_LIMIT (32 * NR_CPUS)
168# define NR_IRQS (NR_VECTORS + 4*CPU_VECTOR_LIMIT) 168# define NR_IRQS \
169# else 169 (CPU_VECTOR_LIMIT < IO_APIC_VECTOR_LIMIT ? \
170# define NR_IRQS (NR_VECTORS + IO_APIC_VECTOR_LIMIT) 170 (NR_VECTORS + CPU_VECTOR_LIMIT) : \
171# endif 171 (NR_VECTORS + IO_APIC_VECTOR_LIMIT))
172# endif 172# endif
173#else /* !CONFIG_X86_IO_APIC: */ 173#else /* !CONFIG_X86_IO_APIC: */
174# define NR_IRQS NR_IRQS_LEGACY 174# define NR_IRQS NR_IRQS_LEGACY
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index de00c4619a55..d9cd1f1b9c07 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -3840,7 +3840,7 @@ int __init arch_probe_nr_irqs(void)
3840 /* 3840 /*
3841 * for MSI and HT dyn irq 3841 * for MSI and HT dyn irq
3842 */ 3842 */
3843 nr += nr_irqs_gsi * 16; 3843 nr += nr_irqs_gsi * 64;
3844#endif 3844#endif
3845 if (nr < nr_irqs) 3845 if (nr < nr_irqs)
3846 nr_irqs = nr; 3846 nr_irqs = nr;