[source] arc770: backport upstream fix for unaligned access

LEDE Commits lede-commits at lists.infradead.org
Thu Feb 9 00:14:54 PST 2017


blogic pushed a commit to source.git, branch master:
https://git.lede-project.org/aab344d227e013dafdb820298f4dbb7c4e0524ba

commit aab344d227e013dafdb820298f4dbb7c4e0524ba
Author: Alexey Brodkin <abrodkin at synopsys.com>
AuthorDate: Wed Feb 8 17:01:00 2017 +0300

    arc770: backport upstream fix for unaligned access
    
    This commit reverts 42f3c1f ("arc770: fix broken upstream change")
    and simultaneously adds back-ported fix from Linus' tree:
    a524c218bc94 ("ARC: [arcompact] brown paper bag bug in unaligned
    access delay slot fixup").
    
    Note mentioned patch will appear in stable trees soon as well so
    IMHO there's not much sense in adding this separate patch in lede/master branch.
    As well as we will get rid of it here in 17.01 once we bump 4.4 kernel here
    later down the line.
    
    Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
    Cc: Felix Fietkau <nbd at nbd.name>
    Cc: John Crispin <john at phrozen.org>
    Cc: Jo-Philipp Wich <jo at mein.io>
---
 ...-bug-in-unaligned-access-delay-slot-fixup.patch | 38 ++++++++++++++++++++++
 ...revert-unaligned-access-delay-corner-case.patch | 31 ------------------
 2 files changed, 38 insertions(+), 31 deletions(-)

diff --git a/target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch b/target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch
new file mode 100644
index 0000000..8f502d9
--- /dev/null
+++ b/target/linux/arc770/patches-4.4/001-ARC-arcompact-brown-paper-bag-bug-in-unaligned-access-delay-slot-fixup.patch
@@ -0,0 +1,38 @@
+From patchwork Tue Feb  7 17:44:58 2017
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: ARC: [arcompact] brown paper bag bug in unaligned access delay slot
+ fixup
+From: Vineet Gupta <Vineet.Gupta1 at synopsys.com>
+X-Patchwork-Id: 725238
+Message-Id: <1486489498-9221-1-git-send-email-vgupta at synopsys.com>
+To: Linus Torvalds <torvalds at linux-foundation.org>
+Cc: Vineet Gupta <Vineet.Gupta1 at synopsys.com>,
+ linux-snps-arc at lists.infradead.org, Jo-Philipp Wich <jo at mein.io>,
+ linux-kernel at vger.kernel.org, stable at vger.kernel.org
+Date: Tue, 7 Feb 2017 09:44:58 -0800
+
+Reported-by: Jo-Philipp Wich <jo at mein.io>
+Fixes: 9aed02feae57bf7 ("ARC: [arcompact] handle unaligned access delay slot")
+Cc: linux-kernel at vger.kernel.org
+Cc: linux-snps-arc at lists.infradead.org
+Cc: stable at vger.kernel.org
+Signed-off-by: Vineet Gupta <vgupta at synopsys.com>
+---
+ arch/arc/kernel/unaligned.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arc/kernel/unaligned.c b/arch/arc/kernel/unaligned.c
+index 91ebe382147f..5f69c3bd59bb 100644
+--- a/arch/arc/kernel/unaligned.c
++++ b/arch/arc/kernel/unaligned.c
+@@ -243,7 +243,7 @@ int misaligned_fixup(unsigned long address, struct pt_regs *regs,
+ 
+ 	/* clear any remanants of delay slot */
+ 	if (delay_mode(regs)) {
+-		regs->ret = regs->bta ~1U;
++		regs->ret = regs->bta & ~1U;
+ 		regs->status32 &= ~STATUS_DE_MASK;
+ 	} else {
+ 		regs->ret += state.instr_len;
diff --git a/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch b/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
deleted file mode 100644
index 37dc56e..0000000
--- a/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Jo-Philipp Wich <jo at mein.io>
-Date: Tue, 7 Feb 2017 09:26:00 +0100
-Subject: [PATCH] arc: revert broken upstream change
-
-The upstream commit
-"9aed02f ARC: [arcompact] handle unaligned access delay slot corner case"
-introduced a syntax error in arch/arc/kernel/unaligned.c, leading to the
-following build failure:
-
-    arch/arc/kernel/unaligned.c: In function 'misaligned_fixup':
-    arch/arc/kernel/unaligned.c:246:25: error: expected ';' before '~' token
-       regs->ret = regs->bta ~1U;
-                         ^
-    make[6]: *** [arch/arc/kernel/unaligned.o] Error 1
-
-This patch reverts the offending change until an upstream fix is available.
-
-Signed-off-by: Jo-Philipp Wich <jo at mein.io>
---- a/arch/arc/kernel/unaligned.c
-+++ b/arch/arc/kernel/unaligned.c
-@@ -241,9 +241,8 @@ int misaligned_fixup(unsigned long addre
- 	if (state.fault)
- 		goto fault;
- 
--	/* clear any remanants of delay slot */
- 	if (delay_mode(regs)) {
--		regs->ret = regs->bta ~1U;
-+		regs->ret = regs->bta;
- 		regs->status32 &= ~STATUS_DE_MASK;
- 	} else {
- 		regs->ret += state.instr_len;



More information about the lede-commits mailing list