aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-08-19 23:50:15 -0400
committerIngo Molnar <mingo@elte.hu>2008-10-16 10:52:50 -0400
commit46926b67fc663d357a1a8174328998a9e49da0b8 (patch)
tree33870a6c416bbc4d246ecfbf015a78c61943a36d /arch
parent7d94f7ca401dd7f445fda9a971a48aa5427b3e55 (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.c6
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)
189asmlinkage unsigned int do_IRQ(struct pt_regs *regs) 189asmlinkage 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();