diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-08-19 23:50:11 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-16 10:52:33 -0400 |
commit | 2c6927a38f65b53b62f86158fba29a068c4e8b6a (patch) | |
tree | 4f23cf5689c8fbaed771219b4afd3f785d8048bc /arch/x86/kernel/irqinit_64.c | |
parent | 9059d8fa4a3a9153da53da890039f7f956cc9d19 (diff) |
irq: replace loop with nr_irqs with for_each_irq_desc
There are a handful of loops that go from 0 to nr_irqs and use
get_irq_desc() on them. These would allocate all the irq_desc
entries, regardless of the need for them.
Use the smarter for_each_irq_desc() iterator that will only iterate
over the present ones.
v2: make sure arch without GENERIC_HARDIRQS work too
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/irqinit_64.c')
-rw-r--r-- | arch/x86/kernel/irqinit_64.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/arch/x86/kernel/irqinit_64.c b/arch/x86/kernel/irqinit_64.c index 0744b49b4d12..cd9f42d028d9 100644 --- a/arch/x86/kernel/irqinit_64.c +++ b/arch/x86/kernel/irqinit_64.c | |||
@@ -142,25 +142,18 @@ void __init init_ISA_irqs(void) | |||
142 | init_bsp_APIC(); | 142 | init_bsp_APIC(); |
143 | init_8259A(0); | 143 | init_8259A(0); |
144 | 144 | ||
145 | for (i = 0; i < nr_irqs; i++) { | 145 | for (i = 0; i < 16; i++) { |
146 | struct irq_desc *desc = irq_to_desc(i); | 146 | struct irq_desc *desc = irq_to_desc(i); |
147 | 147 | ||
148 | desc->status = IRQ_DISABLED; | 148 | desc->status = IRQ_DISABLED; |
149 | desc->action = NULL; | 149 | desc->action = NULL; |
150 | desc->depth = 1; | 150 | desc->depth = 1; |
151 | 151 | ||
152 | if (i < 16) { | 152 | /* |
153 | /* | 153 | * 16 old-style INTA-cycle interrupts: |
154 | * 16 old-style INTA-cycle interrupts: | 154 | */ |
155 | */ | 155 | set_irq_chip_and_handler_name(i, &i8259A_chip, |
156 | set_irq_chip_and_handler_name(i, &i8259A_chip, | ||
157 | handle_level_irq, "XT"); | 156 | handle_level_irq, "XT"); |
158 | } else { | ||
159 | /* | ||
160 | * 'high' PCI IRQs filled in on demand | ||
161 | */ | ||
162 | desc->chip = &no_irq_chip; | ||
163 | } | ||
164 | } | 157 | } |
165 | } | 158 | } |
166 | 159 | ||