diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-08-01 09:55:07 +0200 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-08-01 09:55:07 +0200 |
commit | e0a3647fd7729bee1ed9667ce5d8eb88f0604138 (patch) | |
tree | f83dcc17c4825f0b0fdbd1d0db5df83c5ec84364 /arch | |
parent | sh: Fix pgd mismatch from cached TTB in unhandled fault. (diff) | |
download | linux-e0a3647fd7729bee1ed9667ce5d8eb88f0604138.tar.xz linux-e0a3647fd7729bee1ed9667ce5d8eb88f0604138.zip |
sh: Fix SH-X3 FPU exception handling.
SH-X3 has the FPU exceptions on different vectors completely,
patch in do_fpu_state_restore() to the proper vectors.
Results in a much happier userspace.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/sh/kernel/traps.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c index 502d43e4785c..67015044d74a 100644 --- a/arch/sh/kernel/traps.c +++ b/arch/sh/kernel/traps.c @@ -854,9 +854,14 @@ void __init trap_init(void) set_exception_table_evt(0x800, do_reserved_inst); set_exception_table_evt(0x820, do_illegal_slot_inst); #elif defined(CONFIG_SH_FPU) +#ifdef CONFIG_CPU_SUBTYPE_SHX3 + set_exception_table_evt(0xd80, do_fpu_state_restore); + set_exception_table_evt(0xda0, do_fpu_state_restore); +#else set_exception_table_evt(0x800, do_fpu_state_restore); set_exception_table_evt(0x820, do_fpu_state_restore); #endif +#endif #ifdef CONFIG_CPU_SH2 set_exception_table_vec(TRAP_ADDRESS_ERROR, address_error_handler); |