2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-20 00:26:39 +08:00

[MIPS] Rewrite spurious_interrupt from assembler to C.

Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Ralf Baechle 2006-04-01 21:17:45 +01:00
parent c9e321e095
commit 93373ed4d8
18 changed files with 40 additions and 44 deletions

View File

@ -64,5 +64,6 @@ NESTED(au1000_IRQ, PT_SIZE, sp)
5:
move a0, sp
j spurious_interrupt
jal spurious_interrupt
j ret_from_irq
END(au1000_IRQ)

View File

@ -54,7 +54,8 @@
.set reorder
/* wrong alarm or masked ... */
// j spurious_interrupt
// jal spurious_interrupt
// j ret_from_irq
move a0, sp
jal vrc5476_irq_dispatch
j ret_from_irq

View File

@ -80,8 +80,6 @@ vrc5476_irq_init(u32 base)
asmlinkage void
vrc5476_irq_dispatch(struct pt_regs *regs)
{
extern void spurious_interrupt(void);
u32 mask;
int nile4_irq;
@ -107,5 +105,5 @@ vrc5476_irq_dispatch(struct pt_regs *regs)
return;
}
}
spurious_interrupt();
spurious_interrupt(regs);
}

View File

@ -44,8 +44,8 @@
.set reorder
/* wrong alarm or masked ... */
j spurious_interrupt
nop
jal spurious_interrupt
j ret_from_irq
END(ddb5477_handle_int)
.align 5

View File

@ -282,7 +282,9 @@ fpu:
#endif
spurious:
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
nop
END(decstation_handle_int)

View File

@ -29,5 +29,6 @@ NESTED(ev96100IRQ, PT_SIZE, sp)
jal ev96100_cpu_irq
j ret_from_irq
3: j spurious_interrupt
3: jal spurious_interrupt
j ret_from_irq
END(ev96100IRQ)

View File

@ -39,8 +39,9 @@
nop
/* wrong alarm or masked ... */
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
END(galileo_handle_int)

View File

@ -263,7 +263,8 @@ loc_call: /*
/*
* "Jump extender" to reach spurious_interrupt
*/
3: j spurious_interrupt
3: jal spurious_interrupt
j ret_from_irq
/*
* Vectors for interrupts generated by local devices

View File

@ -119,29 +119,3 @@ syscall_exit_work:
li a1, 1
jal do_syscall_trace
b resume_userspace
/*
* Common spurious interrupt handler.
*/
LEAF(spurious_interrupt)
/*
* Someone tried to fool us by sending an interrupt but we
* couldn't find a cause for it.
*/
PTR_LA t1, irq_err_count
#ifdef CONFIG_SMP
1: ll t0, (t1)
addiu t0, 1
sc t0, (t1)
#if R10000_LLSC_WAR
beqzl t0, 1b
#else
beqz t0, 1b
#endif
#else
lw t0, (t1)
addiu t0, 1
sw t0, (t1)
#endif
j ret_from_irq
END(spurious_interrupt)

View File

@ -101,6 +101,11 @@ skip:
return 0;
}
asmlinkage void spurious_interrupt(struct pt_regs *regs)
{
atomic_inc(&irq_err_count);
}
#ifdef CONFIG_KGDB
extern void breakpoint(void);
extern void set_debug_traps(void);

View File

@ -150,6 +150,8 @@
spurious:
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
nop
END(mipsIRQ)

View File

@ -94,6 +94,8 @@
spurious:
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
nop
END(simIRQ)

View File

@ -78,8 +78,10 @@
.set reorder
/* wrong alarm or masked ... */
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
nop
END(ocelot3_handle_int)
.align 5

View File

@ -52,8 +52,9 @@
.set reorder
/* wrong alarm or masked ... */
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
END(ocelot_handle_int)
.align 5

View File

@ -46,8 +46,9 @@
/* wrong alarm or masked ... */
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
END(cp0_irqdispatch)
.align 5

View File

@ -63,8 +63,9 @@
.set reorder
/* wrong alarm or masked ... */
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
END(tx4927_irq_handler)
.align 5

View File

@ -98,8 +98,10 @@
bnez t1, handle_irq
li a0, 1
j spurious_interrupt
jal spurious_interrupt
nop
j ret_from_irq
nop
handle_int:
jal irq_dispatch

View File

@ -46,5 +46,6 @@ do { \
#endif
extern void arch_init_irq(void);
extern void spurious_interrupt(struct pt_regs *regs);
#endif /* _ASM_IRQ_H */