diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2009-02-06 17:09:41 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-02-09 06:16:05 -0500 |
commit | 7c1d7cdcef1b54f4a78892b6b99d19f12c4f398e (patch) | |
tree | b682c8a8d4ee0cf00de2ee6d00cd8fea37ad6339 /arch/x86/kernel/irq_64.c | |
parent | 9b2b76a3344146c4d8d300874e73af8161204f87 (diff) |
x86: unify do_IRQ()
With the differences in interrupt handling hoisted into handle_irq(),
do_IRQ is more or less identical between 32 and 64 bit, so unify it.
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.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 | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c index a93f3b0dc7f2..977d8b43a0dd 100644 --- a/arch/x86/kernel/irq_64.c +++ b/arch/x86/kernel/irq_64.c | |||
@@ -62,39 +62,6 @@ bool handle_irq(unsigned irq, struct pt_regs *regs) | |||
62 | return true; | 62 | return true; |
63 | } | 63 | } |
64 | 64 | ||
65 | /* | ||
66 | * do_IRQ handles all normal device IRQ's (the special | ||
67 | * SMP cross-CPU interrupts have their own specific | ||
68 | * handlers). | ||
69 | */ | ||
70 | asmlinkage unsigned int __irq_entry do_IRQ(struct pt_regs *regs) | ||
71 | { | ||
72 | struct pt_regs *old_regs = set_irq_regs(regs); | ||
73 | |||
74 | /* high bit used in ret_from_ code */ | ||
75 | unsigned vector = ~regs->orig_ax; | ||
76 | unsigned irq; | ||
77 | |||
78 | exit_idle(); | ||
79 | irq_enter(); | ||
80 | |||
81 | irq = __get_cpu_var(vector_irq)[vector]; | ||
82 | |||
83 | if (!handle_irq(irq, regs)) { | ||
84 | if (!disable_apic) | ||
85 | ack_APIC_irq(); | ||
86 | |||
87 | if (printk_ratelimit()) | ||
88 | printk(KERN_EMERG "%s: %d.%d No irq handler for vector\n", | ||
89 | __func__, smp_processor_id(), vector); | ||
90 | } | ||
91 | |||
92 | irq_exit(); | ||
93 | |||
94 | set_irq_regs(old_regs); | ||
95 | return 1; | ||
96 | } | ||
97 | |||
98 | #ifdef CONFIG_HOTPLUG_CPU | 65 | #ifdef CONFIG_HOTPLUG_CPU |
99 | /* A cpu has been removed from cpu_online_mask. Reset irq affinities. */ | 66 | /* A cpu has been removed from cpu_online_mask. Reset irq affinities. */ |
100 | void fixup_irqs(void) | 67 | void fixup_irqs(void) |