summaryrefslogtreecommitdiffstats
path: root/include/linux/irqnr.h
diff options
context:
space:
mode:
authorMike Travis <travis@sgi.com>2009-01-10 22:24:07 -0800
committerIngo Molnar <mingo@elte.hu>2009-01-11 19:13:38 +0100
commit9332fccdedf8e09448f3b69b624211ae879f6c45 (patch)
tree81f74838f7c5388dc83a3cfd8009a22e223b4888 /include/linux/irqnr.h
parent0fa0ebbf15addc1be8f73325d809c8547a9de304 (diff)
downloadlinux-9332fccdedf8e09448f3b69b624211ae879f6c45.tar.gz
linux-9332fccdedf8e09448f3b69b624211ae879f6c45.tar.bz2
linux-9332fccdedf8e09448f3b69b624211ae879f6c45.zip
irq: initialize nr_irqs based on nr_cpu_ids
Impact: Reduce memory usage. This is the second half of the changes to make the irq_desc_ptrs be variable sized based on nr_cpu_ids. This is done by adding a new "max_nr_irqs" macro to irq_vectors.h (and a dummy in irqnr.h) to return a max NR_IRQS value based on NR_CPUS or nr_cpu_ids. This necessitated moving the define of MAX_IO_APICS to a separate file (asm/apicnum.h) so it could be included without the baggage of the other asm/apicdef.h declarations. Signed-off-by: Mike Travis <travis@sgi.com>
Diffstat (limited to 'include/linux/irqnr.h')
-rw-r--r--include/linux/irqnr.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/irqnr.h b/include/linux/irqnr.h
index 86af92e9e84c..de66e4e10406 100644
--- a/include/linux/irqnr.h
+++ b/include/linux/irqnr.h
@@ -20,11 +20,18 @@
# define for_each_irq_desc_reverse(irq, desc) \
for (irq = nr_irqs - 1; irq >= 0; irq--)
+
#else /* CONFIG_GENERIC_HARDIRQS */
+#include <asm/irq_vectors.h> /* need possible max_nr_irqs() */
+
extern int nr_irqs;
extern struct irq_desc *irq_to_desc(unsigned int irq);
+# ifndef max_nr_irqs
+# define max_nr_irqs(nr_cpus) NR_IRQS
+# endif
+
# define for_each_irq_desc(irq, desc) \
for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \
irq++, desc = irq_to_desc(irq)) \