--- zzzz-none-000/linux-2.6.13.1/arch/mips/kernel/genex.S 2005-09-10 02:42:58.000000000 +0000 +++ ohio-7170-487/linux-2.6.13.1/arch/mips/kernel/genex.S 2005-09-28 11:22:17.000000000 +0000 @@ -35,10 +35,14 @@ NESTED(except_vec0_generic, 0, sp) PANIC_PIC("Exception vector 0 called") END(except_vec0_generic) + .global except_vec0_generic_end +except_vec0_generic_end: NESTED(except_vec1_generic, 0, sp) PANIC_PIC("Exception vector 1 called") END(except_vec1_generic) + .global except_vec1_generic_end +except_vec1_generic_end: /* * General exception vector for all other CPUs. @@ -61,6 +65,8 @@ jr k0 .set pop END(except_vec3_generic) + .global except_vec3_generic_end +except_vec3_generic_end: /* * General exception handler for CPUs with virtual coherency exception. @@ -121,6 +127,8 @@ eret .set pop END(except_vec3_r4000) + .global except_vec3_r4000_end +except_vec3_r4000_end: /* * Special interrupt vector for MIPS64 ISA & embedded MIPS processors. @@ -132,8 +140,23 @@ * to fit into space reserved for the exception handler. */ NESTED(except_vec4, 0, sp) -1: j 1b /* Dummy, will be replaced */ +/* 1: j 1b *//* Dummy, will be replaced */ + .set push + .set noat +#if R5432_CP0_INTERRUPT_WAR + mfc0 k0, CP0_INDEX +#endif + mfc0 k1, CP0_CAUSE + andi k1, k1, 0x7c +#ifdef CONFIG_MIPS64 + dsll k1, k1, 1 +#endif + PTR_L k0, exception_handlers(k1) + jr k0 + .set pop END(except_vec4) + .global except_vec4_end +except_vec4_end: /* * EJTAG debug exception handler. @@ -143,7 +166,10 @@ */ NESTED(except_vec_ejtag_debug, 0, sp) j ejtag_debug_handler + nop END(except_vec_ejtag_debug) + .global except_vec_ejtag_debug_end +except_vec_ejtag_debug_end: __FINIT