summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@g5.osdl.org>2005-12-13 00:25:58 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2005-12-13 00:25:58 +0100
commit062dfa433cce9a2c3941b3b8b96ae678f11230fa (patch)
treeb76f773ef1fab8302e233ac25d23f35d5341b6cd /arch
parentMerge master.kernel.org:/home/rmk/linux-2.6-mmc (diff)
parent[ARM] 3200/1: Singlestep over ARM BX and BLX instructions using ptrace fix (diff)
downloadlinux-062dfa433cce9a2c3941b3b8b96ae678f11230fa.tar.xz
linux-062dfa433cce9a2c3941b3b8b96ae678f11230fa.zip
Merge master.kernel.org:/home/rmk/linux-2.6-arm
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/kernel/ptrace.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
index 9a340e790da5..2b84f78d7b0f 100644
--- a/arch/arm/kernel/ptrace.c
+++ b/arch/arm/kernel/ptrace.c
@@ -242,6 +242,15 @@ get_branch_address(struct task_struct *child, unsigned long pc, unsigned long in
*/
long aluop1, aluop2, ccbit;
+ if ((insn & 0x0fffffd0) == 0x012fff10) {
+ /*
+ * bx or blx
+ */
+ alt = get_user_reg(child, insn & 15);
+ break;
+ }
+
+
if ((insn & 0xf000) != 0xf000)
break;