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/irq_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/irq_64.c')
-rw-r--r-- | arch/x86/kernel/irq_64.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c index 4a0a4eb44dcb..b3cf55e325f5 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c | |||
@@ -224,17 +224,16 @@ void fixup_irqs(cpumask_t map) | |||
224 | { | 224 | { |
225 | unsigned int irq; | 225 | unsigned int irq; |
226 | static int warned; | 226 | static int warned; |
227 | struct irq_desc *desc; | ||
227 | 228 | ||
228 | for (irq = 0; irq < nr_irqs; irq++) { | 229 | for_each_irq_desc(irq, desc) { |
229 | cpumask_t mask; | 230 | cpumask_t mask; |
230 | int break_affinity = 0; | 231 | int break_affinity = 0; |
231 | int set_affinity = 1; | 232 | int set_affinity = 1; |
232 | struct irq_desc *desc; | ||
233 | 233 | ||
234 | if (irq == 2) | 234 | if (irq == 2) |
235 | continue; | 235 | continue; |
236 | 236 | ||
237 | desc = irq_to_desc(irq); | ||
238 | /* interrupt's are disabled at this point */ | 237 | /* interrupt's are disabled at this point */ |
239 | spin_lock(&desc->lock); | 238 | spin_lock(&desc->lock); |
240 | 239 | ||