linux/arch/sh/kernel
Paul Mundt baf4326e49 sh: interrupt exception handling rework
Kill off interrupt_table for all of the CPU subtypes, we now
default in to stepping in to do_IRQ() for _all_ IRQ exceptions
and counting the spurious ones, rather than simply flipping on
the ones we cared about. This and enabling the IRQ by default
automatically has already uncovered a couple of bugs and IRQs
that weren't being caught, as well as some that are being
generated far too often (SCI Tx Data Empty, for example).

The general rationale is to use a marker for interrupt exceptions,
test for it in the handle_exception() path, and skip out to
do_IRQ() if it's found. Everything else follows the same behaviour
of finding the cached EXPEVT value in r2/r2_bank, we just rip out
the INTEVT read from entry.S entirely (except for in the kGDB NMI
case, which is another matter).

Note that while this changes the do_IRQ() semantics regarding r4
handling, they were fundamentally broken anyways (relying entirely
on r2_bank for the cached code). With this, we do the INTEVT read
from do_IRQ() itself (in the CONFIG_CPU_HAS_INTEVT case), or fall
back on r4 for the muxed IRQ number, which should also be closer
to what SH-2 and SH-2A want anyways.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
2006-10-12 12:03:04 +09:00
..
cpu sh: interrupt exception handling rework 2006-10-12 12:03:04 +09:00
timers sh: Updates for IRQ handler changes. 2006-10-06 15:31:16 +09:00
vsyscall sh: Initial gitignore list 2006-10-03 13:16:15 +09:00
Makefile sh: Initial vsyscall page support. 2006-09-27 18:33:49 +09:00
apm.c sh: Kill off remaining config.h references. 2006-10-03 13:19:02 +09:00
asm-offsets.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cf-enabler.c sh: Board updates for I/O routine rework. 2006-09-27 15:41:24 +09:00
cpufreq.c [PATCH] fix missing includes 2005-10-30 17:37:32 -08:00
early_printk.c sh: earlyprintk= support and cleanups. 2006-09-27 14:26:53 +09:00
entry.S sh: interrupt exception handling rework 2006-10-12 12:03:04 +09:00
head.S sh: Add support for 4K stacks. 2006-09-27 18:22:14 +09:00
init_task.c [PATCH] nsproxy: move init_nsproxy into kernel/nsproxy.c 2006-10-02 07:57:20 -07:00
io.c sh: Optimized readsl()/writesl() support. 2006-09-27 18:25:24 +09:00
io_generic.c [PATCH] sh: I/O routine cleanups and ioremap() overhaul 2006-01-16 23:15:28 -08:00
irq.c sh: interrupt exception handling rework 2006-10-12 12:03:04 +09:00
kgdb_jmp.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kgdb_stub.c sh: kgdb stub cleanups. 2006-09-27 16:24:55 +09:00
machine_kexec.c sh: Update kexec support for API changes. 2006-09-27 18:26:05 +09:00
module.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pm.c sh: APM/PM support. 2006-09-27 16:20:22 +09:00
process.c sh: Initial vsyscall page support. 2006-09-27 18:33:49 +09:00
ptrace.c sh: Various cosmetic cleanups. 2006-09-27 12:31:01 +09:00
relocate_kernel.S Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
semaphore.c sh: Fixup some uninitialized spinlocks. 2006-09-27 11:31:32 +09:00
setup.c sh: build fixes for defconfigs. 2006-10-03 13:14:04 +09:00
sh_bios.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sh_ksyms.c sh: build fixes for defconfigs. 2006-10-03 13:14:04 +09:00
signal.c sh: Initial vsyscall page support. 2006-09-27 18:33:49 +09:00
smp.c [PATCH] cpumask: export cpu_online_map and cpu_possible_map consistently 2006-10-02 07:57:17 -07:00
sys_sh.c [PATCH] provide kernel_execve on all architectures 2006-10-02 07:57:23 -07:00
syscalls.S sh: pselect6 and ppoll, along with signal trampoline rework. 2006-09-27 17:27:00 +09:00
time.c sh: Updates for IRQ handler changes. 2006-10-06 15:31:16 +09:00
traps.c sh: Add support for 4K stacks. 2006-09-27 18:22:14 +09:00
vmlinux.lds.S sh: Add support for 4K stacks. 2006-09-27 18:22:14 +09:00