CVSROOT: /home/cvs
Module name: linux
Changes by: ralf@ftp.linux-mips.org 05/04/12 12:03:17
Modified files:
arch/mips64/kernel: Tag: linux_2_4 traps.c
arch/mips/kernel: Tag: linux_2_4 traps.c
Log message:
When simulating ll/sc compute the return EPC before modifying the
registers.
diff -urN linux/arch/mips64/kernel/traps.c linux/arch/mips64/kernel/traps.c
--- linux/arch/mips64/kernel/Attic/traps.c 2004/11/22 13:38:26
1.30.2.62
+++ linux/arch/mips64/kernel/Attic/traps.c 2005/04/12 11:03:17
1.30.2.63
@@ -462,9 +462,10 @@
}
ll_task = current;
+ compute_return_epc(regs);
+
regs->regs[(opcode & RT) >> 16] = value;
- compute_return_epc(regs);
return;
sig:
@@ -505,9 +506,9 @@
goto sig;
}
+ compute_return_epc(regs);
regs->regs[reg] = 1;
- compute_return_epc(regs);
return;
sig:
diff -urN linux/arch/mips/kernel/traps.c linux/arch/mips/kernel/traps.c
--- linux/arch/mips/kernel/traps.c 2004/11/22 13:38:23 1.99.2.68
+++ linux/arch/mips/kernel/traps.c 2005/04/12 11:03:17 1.99.2.69
@@ -452,9 +452,10 @@
}
ll_task = current;
+ compute_return_epc(regs);
+
regs->regs[(opcode & RT) >> 16] = value;
- compute_return_epc(regs);
return;
sig:
@@ -495,9 +496,9 @@
goto sig;
}
+ compute_return_epc(regs);
regs->regs[reg] = 1;
- compute_return_epc(regs);
return;
sig:
|