aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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,
241 if (state.fault) 241 if (state.fault)
242 goto fault; 242 goto fault;
243 243
244 /* clear any remanants of delay slot */
244 if (delay_mode(regs)) { 245 if (delay_mode(regs)) {
245 regs->ret = regs->bta; 246 regs->ret = regs->bta ~1U;
246 regs->status32 &= ~STATUS_DE_MASK; 247 regs->status32 &= ~STATUS_DE_MASK;
247 } else { 248 } else {
248 regs->ret += state.instr_len; 249 regs->ret += state.instr_len;