summaryrefslogtreecommitdiff
path: root/arch/arc/kernel/unaligned.c
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2017-02-01 12:55:09 -0800
committerDmitry Shmidt <dimitrysh@google.com>2017-02-01 12:55:09 -0800
commitc8da41f0dc8d6cf25494b8462bf5875bda2e3568 (patch)
tree395862f05525f0f1ee87cb680891d1831f5cf021 /arch/arc/kernel/unaligned.c
parente9a82a4cbe64b78d72c3adaea73352d2b9bab895 (diff)
parent6c1ed78cb07494c721e9849c92987d029a2e816f (diff)
Merge tag 'v4.4.46' into android-4.4.y
This is the 4.4.46 stable release
Diffstat (limited to 'arch/arc/kernel/unaligned.c')
-rw-r--r--arch/arc/kernel/unaligned.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arc/kernel/unaligned.c b/arch/arc/kernel/unaligned.c
index abd961f3e763..91ebe382147f 100644
--- a/arch/arc/kernel/unaligned.c
+++ b/arch/arc/kernel/unaligned.c
@@ -241,8 +241,9 @@ int misaligned_fixup(unsigned long address, struct pt_regs *regs,
if (state.fault)
goto fault;
+ /* clear any remanants of delay slot */
if (delay_mode(regs)) {
- regs->ret = regs->bta;
+ regs->ret = regs->bta ~1U;
regs->status32 &= ~STATUS_DE_MASK;
} else {
regs->ret += state.instr_len;