[PATCH 2/4] ARM: Thumb-2: Make undefined instruction handler support Thumb kernel code

Tixy tixy at yxit.co.uk
Mon Mar 21 10:57:43 UTC 2011


From: Jon Medhurst <tixy at yxit.co.uk>

Signed-off-by: Jon Medhurst <tixy at yxit.co.uk>
---
 arch/arm/kernel/traps.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 21ac43f..6468100 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -356,7 +356,12 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
 	pc = (void __user *)instruction_pointer(regs);
 
 	if (processor_mode(regs) == SVC_MODE) {
-		instr = *(u32 *) pc;
+#ifdef CONFIG_THUMB2_KERNEL
+		if (thumb_mode(regs))
+			instr = *(u16 *) pc;
+		else
+#endif
+			instr = *(u32 *) pc;
 	} else if (thumb_mode(regs)) {
 		get_user(instr, (u16 __user *)pc);
 	} else {
-- 
1.7.2.5




More information about the linaro-kernel mailing list