summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2017-02-07 09:30:41 +0100
committerJo-Philipp Wich <jo@mein.io>2017-02-07 09:32:47 +0100
commit42f3c1fe1ca051dec2ef828b4a412ed73e29acae (patch)
tree3dccf53de14545969a94d70eb0ddc8bcfe424d8a
parent2ad4383b74d8d842b42a8312aafabfb9bad3d63c (diff)
downloadmtk-20170518-42f3c1fe1ca051dec2ef828b4a412ed73e29acae.zip
mtk-20170518-42f3c1fe1ca051dec2ef828b4a412ed73e29acae.tar.gz
mtk-20170518-42f3c1fe1ca051dec2ef828b4a412ed73e29acae.tar.bz2
arc770: fix broken upstream change
Add a patch to revert upstream commit 9aed02feae57bf7a40cb04ea0e3017cb7a998db4 which introduces syntax errors. Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch31
1 files changed, 31 insertions, 0 deletions
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
new file mode 100644
index 0000000..37dc56e
--- /dev/null
+++ b/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
@@ -0,0 +1,31 @@
+From: Jo-Philipp Wich <jo@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@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;