diff options
| -rw-r--r-- | arch/arc/kernel/unaligned.c | 3 |
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; |
