On Sat, 23 Oct 2004, Maciej W. Rozycki wrote: > Thanks for tracking down this problem -- I think we want the following > fix on top of yours to handle the R3k style of exception handling. I > don't have a way to test it ATM (I'd appreciate feedback if anyone could > do that for me), but it should be obvious. > > Ralf, do you agree? We want interrupts to be disabled until rfe, of course. Here's an update. Hopefully no more bugs here... Maciej patch-mips-2.6.9-20041023-kernel_thread-r3k-1 diff -up --recursive --new-file linux-mips-2.6.9-20041023.macro/arch/mips/kernel/process.c linux-mips-2.6.9-20041023/arch/mips/kernel/process.c --- linux-mips-2.6.9-20041023.macro/arch/mips/kernel/process.c Sat Oct 23 03:30:46 2004 +++ linux-mips-2.6.9-20041023/arch/mips/kernel/process.c Sat Oct 23 05:07:59 2004 @@ -175,7 +175,10 @@ long kernel_thread(int (*fn)(void *), vo regs.regs[5] = (unsigned long) fn; regs.cp0_epc = (unsigned long) kernel_thread_helper; regs.cp0_status = read_c0_status(); -#if !(defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)) +#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX) + regs.cp0_status &= ~(ST0_KUP | ST0_IEC); + regs.cp0_status |= ST0_IEP; +#else regs.cp0_status |= ST0_EXL; #endif