Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 187933f2 authored by Atsushi Nemoto's avatar Atsushi Nemoto Committed by Ralf Baechle
Browse files

[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: default avatarAtsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 617667ba
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -267,7 +267,7 @@ handle_it:
		LONG_L	s0, TI_REGS($28)
		LONG_S	sp, TI_REGS($28)
		PTR_LA	ra, ret_from_irq
		j	do_IRQ
		j	dec_irq_dispatch
		 nop

#ifdef CONFIG_32BIT
+6 −0
Original line number Diff line number Diff line
@@ -761,3 +761,9 @@ void __init arch_init_irq(void)
	if (dec_interrupt[DEC_IRQ_HALT] >= 0)
		setup_irq(dec_interrupt[DEC_IRQ_HALT], &haltirq);
}

asmlinkage unsigned int dec_irq_dispatch(unsigned int irq)
{
	do_IRQ(irq);
	return 0;
}
+0 −19
Original line number Diff line number Diff line
@@ -88,25 +88,6 @@ atomic_t irq_err_count;
unsigned long irq_hwmask[NR_IRQS];
#endif /* CONFIG_MIPS_MT_SMTC */

#undef do_IRQ

/*
 * do_IRQ handles all normal device IRQ's (the special
 * SMP cross-CPU interrupts have their own specific
 * handlers).
 */
asmlinkage unsigned int do_IRQ(unsigned int irq)
{
	irq_enter();

	__DO_IRQ_SMTC_HOOK();
	__do_IRQ(irq);

	irq_exit();

	return 1;
}

/*
 * Generic, controller-independent functions:
 */
+0 −6
Original line number Diff line number Diff line
@@ -24,8 +24,6 @@ static inline int irq_canonicalize(int irq)
#define irq_canonicalize(irq) (irq)	/* Sane hardware, sane code ... */
#endif

extern asmlinkage unsigned int do_IRQ(unsigned int irq);

#ifdef CONFIG_MIPS_MT_SMTC
/*
 * Clear interrupt mask handling "backstop" if irq_hwmask
@@ -43,8 +41,6 @@ do { \
#define __DO_IRQ_SMTC_HOOK() do { } while (0)
#endif

#ifdef CONFIG_PREEMPT

/*
 * do_IRQ handles all normal device IRQ's (the special
 * SMP cross-CPU interrupts have their own specific
@@ -61,8 +57,6 @@ do { \
	irq_exit();							\
} while (0)

#endif

extern void arch_init_irq(void);
extern void spurious_interrupt(void);