diff options
author | Phil Edworthy <Phil.Edworthy@renesas.com> | 2011-08-22 11:56:08 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-08-29 02:32:04 -0400 |
commit | 0710b91c516ffd448db6e80e9026f11778a80d45 (patch) | |
tree | ecb5955e09895f775ed7d6e38ee38facb87c1ff2 /arch/sh | |
parent | 2d0b579a9831c927bcebf5f61055e7462f0af2dc (diff) |
sh: Fix unaligned memory access for branches without delay slots
This patch just clears the return code for those cases where an
unaligned memory access occurs on branch instructions without a
delay slot.
Signed-off-by: Phil Edworthy <phil.edworthy@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r-- | arch/sh/kernel/traps_32.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sh/kernel/traps_32.c b/arch/sh/kernel/traps_32.c index d9006f8ffc14..61fa4a5bc72b 100644 --- a/arch/sh/kernel/traps_32.c +++ b/arch/sh/kernel/traps_32.c | |||
@@ -466,6 +466,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs, | |||
466 | case 0x0500: /* mov.w @(disp,Rm),R0 */ | 466 | case 0x0500: /* mov.w @(disp,Rm),R0 */ |
467 | goto simple; | 467 | goto simple; |
468 | case 0x0B00: /* bf lab - no delayslot*/ | 468 | case 0x0B00: /* bf lab - no delayslot*/ |
469 | ret = 0; | ||
469 | break; | 470 | break; |
470 | case 0x0F00: /* bf/s lab */ | 471 | case 0x0F00: /* bf/s lab */ |
471 | ret = handle_delayslot(regs, instruction, ma); | 472 | ret = handle_delayslot(regs, instruction, ma); |
@@ -479,6 +480,7 @@ int handle_unaligned_access(insn_size_t instruction, struct pt_regs *regs, | |||
479 | } | 480 | } |
480 | break; | 481 | break; |
481 | case 0x0900: /* bt lab - no delayslot */ | 482 | case 0x0900: /* bt lab - no delayslot */ |
483 | ret = 0; | ||
482 | break; | 484 | break; |
483 | case 0x0D00: /* bt/s lab */ | 485 | case 0x0D00: /* bt/s lab */ |
484 | ret = handle_delayslot(regs, instruction, ma); | 486 | ret = handle_delayslot(regs, instruction, ma); |