aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhil Edworthy <Phil.Edworthy@renesas.com>2011-08-22 11:56:08 -0400
committerPaul Mundt <lethal@linux-sh.org>2011-08-29 02:32:04 -0400
commit0710b91c516ffd448db6e80e9026f11778a80d45 (patch)
treeecb5955e09895f775ed7d6e38ee38facb87c1ff2
parent2d0b579a9831c927bcebf5f61055e7462f0af2dc (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>
-rw-r--r--arch/sh/kernel/traps_32.c2
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);