aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/arc770/patches-4.4/900-revert-unaligned-access-delay-corner-case.patch
blob: 37dc56e18448af22731a7aa4fabca9013e37eecb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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;