diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-08-19 23:50:15 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-10-16 10:52:50 -0400 |
commit | 46926b67fc663d357a1a8174328998a9e49da0b8 (patch) | |
tree | 33870a6c416bbc4d246ecfbf015a78c61943a36d /arch | |
parent | 7d94f7ca401dd7f445fda9a971a48aa5427b3e55 (diff) |
generic: add irq_desc in function in parameter
So we could remove some duplicated calling to irq_desc
v2: make sure irq_desc in init/main.c is not used without generic_hardirqs
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/irq_64.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c index a3e36336d914..f58b995b30ee 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c | |||
@@ -189,6 +189,7 @@ u64 arch_irq_stat(void) | |||
189 | asmlinkage unsigned int do_IRQ(struct pt_regs *regs) | 189 | asmlinkage unsigned int do_IRQ(struct pt_regs *regs) |
190 | { | 190 | { |
191 | struct pt_regs *old_regs = set_irq_regs(regs); | 191 | struct pt_regs *old_regs = set_irq_regs(regs); |
192 | struct irq_desc *desc; | ||
192 | 193 | ||
193 | /* high bit used in ret_from_ code */ | 194 | /* high bit used in ret_from_ code */ |
194 | unsigned vector = ~regs->orig_ax; | 195 | unsigned vector = ~regs->orig_ax; |
@@ -202,8 +203,9 @@ asmlinkage unsigned int do_IRQ(struct pt_regs *regs) | |||
202 | stack_overflow_check(regs); | 203 | stack_overflow_check(regs); |
203 | #endif | 204 | #endif |
204 | 205 | ||
205 | if (likely(__irq_to_desc(irq))) | 206 | desc = __irq_to_desc(irq); |
206 | generic_handle_irq(irq); | 207 | if (likely(desc)) |
208 | generic_handle_irq_desc(irq, desc); | ||
207 | else { | 209 | else { |
208 | if (!disable_apic) | 210 | if (!disable_apic) |
209 | ack_APIC_irq(); | 211 | ack_APIC_irq(); |