|
@@ -105,6 +105,8 @@
|
|
|
|
|
|
#if defined(CONFIG_X86_IO_APIC) && !defined(CONFIG_X86_VOYAGER)
|
|
|
|
|
|
+#include <asm/apicnum.h> /* need MAX_IO_APICS */
|
|
|
+
|
|
|
#ifndef CONFIG_SPARSE_IRQ
|
|
|
# if NR_CPUS < MAX_IO_APICS
|
|
|
# define NR_IRQS (NR_VECTORS + (32 * NR_CPUS))
|
|
@@ -112,11 +114,15 @@
|
|
|
# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
|
|
|
# endif
|
|
|
#else
|
|
|
-# if (8 * NR_CPUS) > (32 * MAX_IO_APICS)
|
|
|
-# define NR_IRQS (NR_VECTORS + (8 * NR_CPUS))
|
|
|
-# else
|
|
|
-# define NR_IRQS (NR_VECTORS + (32 * MAX_IO_APICS))
|
|
|
-# endif
|
|
|
+
|
|
|
+/* defined as a macro so nr_irqs = max_nr_irqs(nr_cpu_ids) can be used */
|
|
|
+# define max_nr_irqs(nr_cpus) \
|
|
|
+ ((8 * nr_cpus) > (32 * MAX_IO_APICS) ? \
|
|
|
+ (NR_VECTORS + (8 * NR_CPUS)) : \
|
|
|
+ (NR_VECTORS + (32 * MAX_IO_APICS))) \
|
|
|
+
|
|
|
+# define NR_IRQS max_nr_irqs(NR_CPUS)
|
|
|
+
|
|
|
#endif
|
|
|
|
|
|
#elif defined(CONFIG_X86_VOYAGER)
|