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 31dd47d1002d..b251ef864c33 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 6b7481e97bec..d34032ac492a 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 e997c9454f47..b339798b3172 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 aed370770225..67657089efa7 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 | ||
