Patch "MIPS: math-emu: Fix jalr emulation when rd == $0" has been added to the 4.5-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
MIPS: math-emu: Fix jalr emulation when rd == $0
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mips-math-emu-fix-jalr-emulation-when-rd-0.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
ab4a92e66741b35ca12f8497896bafbe579c28a1Mon Sep 17 00:00:00 2001
From: Paul Burton <[email protected]>
Date: Thu, 21 Apr 2016 14:04:55 +0100
Subject: MIPS: math-emu: Fix jalr emulation when rd == $0
From: Paul Burton <[email protected]>
commit ab4a92e66741b35ca12f8497896bafbe579c28a1 upstream.
When emulating a jalr instruction with rd == $0, the code in isBranchInstr was incorrectly writing to GPR $0 which should actually always remain zeroed. This would lead to any further instructions emulated which use $0 operating on a bogus value until the task is next context switched, at which point the value of $0 in the task context would be restored to the correct zero by a store in SAVE_SOME. Fix this by not writing to rd if it is $0.
Patchwork: https://patchwork.linux-mips.org/patch/13160/
--- arch/mips/math-emu/cp1emu.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
arch/mips/math-emu/cp1emu.c +5 -3
@@ -445,9 +445,11 @@ static int isBranchInstr(struct pt_regscase spec_op:switch (insn.r_format.func) {case jalr_op: - regs->regs[insn.r_format.rd] = - regs->cp0_epc + dec_insn.pc_inc + - dec_insn.next_pc_inc; +if (insn.r_format.rd !=0 ) { + regs->regs[insn.r_format.rd] = + regs->cp0_epc + dec_insn.pc_inc + + dec_insn.next_pc_inc; + }/* Fall through */ case jr_op:/* For R6, JR already emulated in jalr_op */
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/mips-math-emu-fix-jalr-emulation-when-rd-0.patch