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@xxxxxxxxxxxxxx> 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 */