On Mon, Jul 30, 2007 at 11:32:44PM +0800, Songmao Tian wrote:
> commit 5fabf601a53079c182d5c25f6e850d6a7bd48988 is broken. since the
> regptr is disappeared in the signature of the function, I think the
> regptr is useless.
Indeed, you found a bug but your fix wasn't right.
Ralf
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index bbf20ce..d34b1fb 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -281,9 +281,8 @@ static void emulate_load_store_insn(struct pt_regs *regs,
: "r" (addr), "i" (-EFAULT));
if (res)
goto fault;
- *regptr = ®s->regs[insn.i_format.rt];
compute_return_epc(regs);
- *regptr = value;
+ regs->regs[insn.i_format.rt] = value;
break;
#endif /* CONFIG_64BIT */
@@ -324,9 +323,8 @@ static void emulate_load_store_insn(struct pt_regs *regs,
: "r" (addr), "i" (-EFAULT));
if (res)
goto fault;
- *regptr = ®s->regs[insn.i_format.rt];
compute_return_epc(regs);
- *regptr = value;
+ regs->regs[insn.i_format.rt] = value;
break;
#endif /* CONFIG_64BIT */
|