diff options
author | Catalin Marinas <catalin.marinas@arm.com> | 2009-02-16 05:42:09 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-02-19 06:27:35 -0500 |
commit | c4c5716e16c4ee971dec446a7e4801fbb8a1066b (patch) | |
tree | a1fb65c5b694bdc0b61bcd06371c2204968eb3b3 /arch/arm/kernel/entry-common.S | |
parent | 2e1926e7b5d39eb31880152d636e8d8d011888cb (diff) |
[ARM] 5385/2: unwind: Add unwinding information to exception entry points
This is needed to allow or stop the unwinding at certain points in the
kernel like exception entries.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r-- | arch/arm/kernel/entry-common.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index 49a6ba926c2b..b8c1f1411440 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -11,6 +11,7 @@ | |||
11 | #include <asm/unistd.h> | 11 | #include <asm/unistd.h> |
12 | #include <asm/ftrace.h> | 12 | #include <asm/ftrace.h> |
13 | #include <mach/entry-macro.S> | 13 | #include <mach/entry-macro.S> |
14 | #include <asm/unwind.h> | ||
14 | 15 | ||
15 | #include "entry-header.S" | 16 | #include "entry-header.S" |
16 | 17 | ||
@@ -22,6 +23,8 @@ | |||
22 | * stack. | 23 | * stack. |
23 | */ | 24 | */ |
24 | ret_fast_syscall: | 25 | ret_fast_syscall: |
26 | UNWIND(.fnstart ) | ||
27 | UNWIND(.cantunwind ) | ||
25 | disable_irq @ disable interrupts | 28 | disable_irq @ disable interrupts |
26 | ldr r1, [tsk, #TI_FLAGS] | 29 | ldr r1, [tsk, #TI_FLAGS] |
27 | tst r1, #_TIF_WORK_MASK | 30 | tst r1, #_TIF_WORK_MASK |
@@ -38,6 +41,7 @@ ret_fast_syscall: | |||
38 | mov r0, r0 | 41 | mov r0, r0 |
39 | add sp, sp, #S_FRAME_SIZE - S_PC | 42 | add sp, sp, #S_FRAME_SIZE - S_PC |
40 | movs pc, lr @ return & move spsr_svc into cpsr | 43 | movs pc, lr @ return & move spsr_svc into cpsr |
44 | UNWIND(.fnend ) | ||
41 | 45 | ||
42 | /* | 46 | /* |
43 | * Ok, we need to do extra processing, enter the slow path. | 47 | * Ok, we need to do extra processing, enter the slow path. |