Hi Ralf, I found a bug in simulate_ll and simulate_sc. When send_sig in these, in order not to operate the value of EPC correctly, simulate_* happens continuously. Please apply these patches to CVS tree. Thanks, Yoichi
diff -aruN --exclude=CVS --exclude=.cvsignore linux.orig/arch/mips/kernel/traps.c linux/arch/mips/kernel/traps.c --- linux.orig/arch/mips/kernel/traps.c Tue Feb 11 07:50:48 2003 +++ linux/arch/mips/kernel/traps.c Thu Feb 27 20:00:43 2003 @@ -140,6 +140,7 @@ return; sig: + compute_return_epc(regs); send_sig(signal, current, 1); } @@ -184,6 +185,7 @@ return; sig: + compute_return_epc(regs); send_sig(signal, current, 1); }
diff -aruN --exclude=CVS --exclude=.cvsignore linux.orig/arch/mips/kernel/traps.c linux/arch/mips/kernel/traps.c --- linux.orig/arch/mips/kernel/traps.c Wed Feb 12 13:26:43 2003 +++ linux/arch/mips/kernel/traps.c Thu Feb 27 20:34:29 2003 @@ -135,6 +135,7 @@ return; sig: + compute_return_epc(regs); send_sig(signal, current, 1); } @@ -179,6 +180,7 @@ return; sig: + compute_return_epc(regs); send_sig(signal, current, 1); }