diff options
| -rw-r--r-- | arch/x86/include/asm/irq_vectors.h | 12 | ||||
| -rw-r--r-- | arch/x86/kernel/apic/io_apic.c | 2 |
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; |
