aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2006-04-01 15:17:45 -0500
committerRalf Baechle <ralf@linux-mips.org>2006-04-18 22:14:18 -0400
commit93373ed4d87fb02554ce020d929388ac16913664 (patch)
tree01925421619219d00c39744b0a4cc79b8f7f719b /arch/mips/kernel
parentc9e321e095384f25f2b7ffef456794cfa876dafc (diff)
[MIPS] Rewrite spurious_interrupt from assembler to C.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/kernel')
-rw-r--r--arch/mips/kernel/entry.S26
-rw-r--r--arch/mips/kernel/irq.c5
2 files changed, 5 insertions, 26 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index 83c87fe4ee4f..371571f4f280 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -119,29 +119,3 @@ syscall_exit_work:
119 li a1, 1 119 li a1, 1
120 jal do_syscall_trace 120 jal do_syscall_trace
121 b resume_userspace 121 b resume_userspace
122
123/*
124 * Common spurious interrupt handler.
125 */
126LEAF(spurious_interrupt)
127 /*
128 * Someone tried to fool us by sending an interrupt but we
129 * couldn't find a cause for it.
130 */
131 PTR_LA t1, irq_err_count
132#ifdef CONFIG_SMP
1331: ll t0, (t1)
134 addiu t0, 1
135 sc t0, (t1)
136#if R10000_LLSC_WAR
137 beqzl t0, 1b
138#else
139 beqz t0, 1b
140#endif
141#else
142 lw t0, (t1)
143 addiu t0, 1
144 sw t0, (t1)
145#endif
146 j ret_from_irq
147 END(spurious_interrupt)
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index 3dd76b3d2967..e0efc4f2f93e 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -101,6 +101,11 @@ skip:
101 return 0; 101 return 0;
102} 102}
103 103
104asmlinkage void spurious_interrupt(struct pt_regs *regs)
105{
106 atomic_inc(&irq_err_count);
107}
108
104#ifdef CONFIG_KGDB 109#ifdef CONFIG_KGDB
105extern void breakpoint(void); 110extern void breakpoint(void);
106extern void set_debug_traps(void); 111extern void set_debug_traps(void);