diff options
author | Mike Travis <travis@sgi.com> | 2009-01-11 01:24:07 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-11 13:13:38 -0500 |
commit | 9332fccdedf8e09448f3b69b624211ae879f6c45 (patch) | |
tree | 81f74838f7c5388dc83a3cfd8009a22e223b4888 /include/linux/irqnr.h | |
parent | 0fa0ebbf15addc1be8f73325d809c8547a9de304 (diff) |
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.h | 7 |
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 @@ | |||
20 | 20 | ||
21 | # define for_each_irq_desc_reverse(irq, desc) \ | 21 | # define for_each_irq_desc_reverse(irq, desc) \ |
22 | for (irq = nr_irqs - 1; irq >= 0; irq--) | 22 | for (irq = nr_irqs - 1; irq >= 0; irq--) |
23 | |||
23 | #else /* CONFIG_GENERIC_HARDIRQS */ | 24 | #else /* CONFIG_GENERIC_HARDIRQS */ |
24 | 25 | ||
26 | #include <asm/irq_vectors.h> /* need possible max_nr_irqs() */ | ||
27 | |||
25 | extern int nr_irqs; | 28 | extern int nr_irqs; |
26 | extern struct irq_desc *irq_to_desc(unsigned int irq); | 29 | extern struct irq_desc *irq_to_desc(unsigned int irq); |
27 | 30 | ||
31 | # ifndef max_nr_irqs | ||
32 | # define max_nr_irqs(nr_cpus) NR_IRQS | ||
33 | # endif | ||
34 | |||
28 | # define for_each_irq_desc(irq, desc) \ | 35 | # define for_each_irq_desc(irq, desc) \ |
29 | for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \ | 36 | for (irq = 0, desc = irq_to_desc(irq); irq < nr_irqs; \ |
30 | irq++, desc = irq_to_desc(irq)) \ | 37 | irq++, desc = irq_to_desc(irq)) \ |