diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-10-25 10:57:04 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-11-29 20:14:49 -0500 |
commit | 187933f23679c413706030aefad9e85e79164c44 (patch) | |
tree | 8efd558a3cb30a337f16869241a4075831587b3a | |
parent | 617667ba724d46ffeccb88ee99e1379f29b0bfa7 (diff) |
[MIPS] do_IRQ cleanup
Now we have both function and macro version of do_IRQ() and the former
is used only by DEC and non-preemptive kernel. This patch makes
everyone use the macro version and removes the function version.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/dec/int-handler.S | 2 | ||||
-rw-r--r-- | arch/mips/dec/setup.c | 6 | ||||
-rw-r--r-- | arch/mips/kernel/irq.c | 19 | ||||
-rw-r--r-- | include/asm-mips/irq.h | 6 |
4 files changed, 7 insertions, 26 deletions
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S index 31dd47d1002..b251ef864c3 100644 --- a/arch/mips/dec/int-handler.S +++ b/arch/mips/dec/int-handler.S | |||
@@ -267,7 +267,7 @@ handle_it: | |||
267 | LONG_L s0, TI_REGS($28) | 267 | LONG_L s0, TI_REGS($28) |
268 | LONG_S sp, TI_REGS($28) | 268 | LONG_S sp, TI_REGS($28) |
269 | PTR_LA ra, ret_from_irq | 269 | PTR_LA ra, ret_from_irq |
270 | j do_IRQ | 270 | j dec_irq_dispatch |
271 | nop | 271 | nop |
272 | 272 | ||
273 | #ifdef CONFIG_32BIT | 273 | #ifdef CONFIG_32BIT |
diff --git a/arch/mips/dec/setup.c b/arch/mips/dec/setup.c index 6b7481e97be..d34032ac492 100644 --- a/arch/mips/dec/setup.c +++ b/arch/mips/dec/setup.c | |||
@@ -761,3 +761,9 @@ void __init arch_init_irq(void) | |||
761 | if (dec_interrupt[DEC_IRQ_HALT] >= 0) | 761 | if (dec_interrupt[DEC_IRQ_HALT] >= 0) |
762 | setup_irq(dec_interrupt[DEC_IRQ_HALT], &haltirq); | 762 | setup_irq(dec_interrupt[DEC_IRQ_HALT], &haltirq); |
763 | } | 763 | } |
764 | |||
765 | asmlinkage unsigned int dec_irq_dispatch(unsigned int irq) | ||
766 | { | ||
767 | do_IRQ(irq); | ||
768 | return 0; | ||
769 | } | ||
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c index e997c9454f4..b339798b317 100644 --- a/arch/mips/kernel/irq.c +++ b/arch/mips/kernel/irq.c | |||
@@ -88,25 +88,6 @@ atomic_t irq_err_count; | |||
88 | unsigned long irq_hwmask[NR_IRQS]; | 88 | unsigned long irq_hwmask[NR_IRQS]; |
89 | #endif /* CONFIG_MIPS_MT_SMTC */ | 89 | #endif /* CONFIG_MIPS_MT_SMTC */ |
90 | 90 | ||
91 | #undef do_IRQ | ||
92 | |||
93 | /* | ||
94 | * do_IRQ handles all normal device IRQ's (the special | ||
95 | * SMP cross-CPU interrupts have their own specific | ||
96 | * handlers). | ||
97 | */ | ||
98 | asmlinkage unsigned int do_IRQ(unsigned int irq) | ||
99 | { | ||
100 | irq_enter(); | ||
101 | |||
102 | __DO_IRQ_SMTC_HOOK(); | ||
103 | __do_IRQ(irq); | ||
104 | |||
105 | irq_exit(); | ||
106 | |||
107 | return 1; | ||
108 | } | ||
109 | |||
110 | /* | 91 | /* |
111 | * Generic, controller-independent functions: | 92 | * Generic, controller-independent functions: |
112 | */ | 93 | */ |
diff --git a/include/asm-mips/irq.h b/include/asm-mips/irq.h index aed37077022..67657089efa 100644 --- a/include/asm-mips/irq.h +++ b/include/asm-mips/irq.h | |||
@@ -24,8 +24,6 @@ static inline int irq_canonicalize(int irq) | |||
24 | #define irq_canonicalize(irq) (irq) /* Sane hardware, sane code ... */ | 24 | #define irq_canonicalize(irq) (irq) /* Sane hardware, sane code ... */ |
25 | #endif | 25 | #endif |
26 | 26 | ||
27 | extern asmlinkage unsigned int do_IRQ(unsigned int irq); | ||
28 | |||
29 | #ifdef CONFIG_MIPS_MT_SMTC | 27 | #ifdef CONFIG_MIPS_MT_SMTC |
30 | /* | 28 | /* |
31 | * Clear interrupt mask handling "backstop" if irq_hwmask | 29 | * Clear interrupt mask handling "backstop" if irq_hwmask |
@@ -43,8 +41,6 @@ do { \ | |||
43 | #define __DO_IRQ_SMTC_HOOK() do { } while (0) | 41 | #define __DO_IRQ_SMTC_HOOK() do { } while (0) |
44 | #endif | 42 | #endif |
45 | 43 | ||
46 | #ifdef CONFIG_PREEMPT | ||
47 | |||
48 | /* | 44 | /* |
49 | * do_IRQ handles all normal device IRQ's (the special | 45 | * do_IRQ handles all normal device IRQ's (the special |
50 | * SMP cross-CPU interrupts have their own specific | 46 | * SMP cross-CPU interrupts have their own specific |
@@ -61,8 +57,6 @@ do { \ | |||
61 | irq_exit(); \ | 57 | irq_exit(); \ |
62 | } while (0) | 58 | } while (0) |
63 | 59 | ||
64 | #endif | ||
65 | |||
66 | extern void arch_init_irq(void); | 60 | extern void arch_init_irq(void); |
67 | extern void spurious_interrupt(void); | 61 | extern void spurious_interrupt(void); |
68 | 62 | ||