[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