aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Ellerman <michael@ellerman.id.au>2009-10-13 15:44:44 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-10-30 02:20:54 -0400
commit551b81f26ffc2135b8490babad1a9ab12d617e8d (patch)
treeaecce5f8d02c6d31a6878b5e3a6c43f774297d4c
parentd35ef90bf9e7cab9aa85e9c0724bd1ac6f784601 (diff)
powerpc: Make NR_IRQS a CONFIG option
The irq_desc array consumes quite a lot of space, and for systems that don't need or can't have 512 irqs it's just wasted space. The first 16 are reserved for ISA, so the minimum of 32 is really 16 - and no one has asked for more than 512 so leave that as the maximum. Signed-off-by: Michael Ellerman <michael@ellerman.id.au> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/Kconfig10
-rw-r--r--arch/powerpc/include/asm/irq.h4
2 files changed, 12 insertions, 2 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index c01580d86fd..3aa79f8e39e 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -56,6 +56,16 @@ config IRQ_PER_CPU
56 bool 56 bool
57 default y 57 default y
58 58
59config NR_IRQS
60 int "Number of virtual interrupt numbers"
61 range 32 512
62 default "512"
63 help
64 This defines the number of virtual interrupt numbers the kernel
65 can manage. Virtual interrupt numbers are what you see in
66 /proc/interrupts. If you configure your system to have too few,
67 drivers will fail to load or worse - handle with care.
68
59config STACKTRACE_SUPPORT 69config STACKTRACE_SUPPORT
60 bool 70 bool
61 default y 71 default y
diff --git a/arch/powerpc/include/asm/irq.h b/arch/powerpc/include/asm/irq.h
index bbcd1aaf3df..b83fcc81fae 100644
--- a/arch/powerpc/include/asm/irq.h
+++ b/arch/powerpc/include/asm/irq.h
@@ -34,8 +34,8 @@ extern atomic_t ppc_n_lost_interrupts;
34 */ 34 */
35#define NO_IRQ_IGNORE ((unsigned int)-1) 35#define NO_IRQ_IGNORE ((unsigned int)-1)
36 36
37/* Total number of virq in the platform (make it a CONFIG_* option ? */ 37/* Total number of virq in the platform */
38#define NR_IRQS 512 38#define NR_IRQS CONFIG_NR_IRQS
39 39
40/* Number of irqs reserved for the legacy controller */ 40/* Number of irqs reserved for the legacy controller */
41#define NUM_ISA_INTERRUPTS 16 41#define NUM_ISA_INTERRUPTS 16