[<prev] [next>] [day] [month] [year] [list]
Message-Id: <1465483027-27679-1-git-send-email-kamal@canonical.com>
Date: Thu, 9 Jun 2016 07:37:07 -0700
From: Kamal Mostafa <kamal@...onical.com>
To: Paul Burton <paul.burton@...tec.com>
Cc: James Hogan <james.hogan@...tec.com>, linux-mips@...ux-mips.org,
linux-kernel@...r.kernel.org, Ralf Baechle <ralf@...ux-mips.org>,
Kamal Mostafa <kamal@...onical.com>,
kernel-team@...ts.ubuntu.com
Subject: [4.2.y-ckt stable] Patch "MIPS: Fix BC1{EQ,NE}Z return offset calculation" has been added to the 4.2.y-ckt tree
This is a note to let you know that I have just added a patch titled
MIPS: Fix BC1{EQ,NE}Z return offset calculation
to the linux-4.2.y-queue branch of the 4.2.y-ckt extended stable tree
which can be found at:
https://git.launchpad.net/~canonical-kernel/linux/+git/linux-stable-ckt/log/?h=linux-4.2.y-queue
This patch is scheduled to be released in version 4.2.8-ckt12.
If you, or anyone else, feels it should not be added to this tree, please
reply to this email.
For more information about the 4.2.y-ckt tree, see
https://wiki.ubuntu.com/Kernel/Dev/ExtendedStable
Thanks.
-Kamal
---8<------------------------------------------------------------
>From 18dde650963a77d3fd79b8cbf23c865fb91c2ded Mon Sep 17 00:00:00 2001
From: Paul Burton <paul.burton@...tec.com>
Date: Thu, 21 Apr 2016 14:04:46 +0100
Subject: MIPS: Fix BC1{EQ,NE}Z return offset calculation
commit ac1496980f1d2752f26769f5db63afbc9ac2b603 upstream.
The conditions for branching when emulating the BC1EQZ & BC1NEZ
instructions were backwards, leading to each of those instructions being
treated as the other. Fix this by reversing the conditions, and clear up
the code a little for readability & checkpatch.
Fixes: c8a34581ec09 ("MIPS: Emulate the BC1{EQ,NE}Z FPU instructions")
Signed-off-by: Paul Burton <paul.burton@...tec.com>
Reviewed-by: James Hogan <james.hogan@...tec.com>
Cc: linux-mips@...ux-mips.org
Cc: linux-kernel@...r.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/13151/
Signed-off-by: Ralf Baechle <ralf@...ux-mips.org>
Signed-off-by: Kamal Mostafa <kamal@...onical.com>
---
arch/mips/kernel/branch.c | 18 +++---------------
1 file changed, 3 insertions(+), 15 deletions(-)
diff --git a/arch/mips/kernel/branch.c b/arch/mips/kernel/branch.c
index d8f9b35..ceca6cc 100644
--- a/arch/mips/kernel/branch.c
+++ b/arch/mips/kernel/branch.c
@@ -688,21 +688,9 @@ int __compute_return_epc_for_insn(struct pt_regs *regs,
}
lose_fpu(1); /* Save FPU state for the emulator. */
reg = insn.i_format.rt;
- bit = 0;
- switch (insn.i_format.rs) {
- case bc1eqz_op:
- /* Test bit 0 */
- if (get_fpr32(¤t->thread.fpu.fpr[reg], 0)
- & 0x1)
- bit = 1;
- break;
- case bc1nez_op:
- /* Test bit 0 */
- if (!(get_fpr32(¤t->thread.fpu.fpr[reg], 0)
- & 0x1))
- bit = 1;
- break;
- }
+ bit = get_fpr32(¤t->thread.fpu.fpr[reg], 0) & 0x1;
+ if (insn.i_format.rs == bc1eqz_op)
+ bit = !bit;
own_fpu(1);
if (bit)
epc = epc + 4 +
--
2.7.4
Powered by blists - more mailing lists