diff options
| author | Stephen Boyd <sboyd@codeaurora.org> | 2015-09-14 19:11:30 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2015-10-03 11:36:45 -0400 |
| commit | 6f56a68d0bed16c13e9ec958cd28acbc2991d495 (patch) | |
| tree | bc754df52c9ca7f0d7bcf4aec51cbb475847931d /arch/arm/lib | |
| parent | b97b272e72ae07a04a664685c876439215bdeb74 (diff) | |
ARM: 8438/1: Add unwinding to __clear_user_std()
Add unwinding annotations so that unwinding from this function
works properly.
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/lib')
| -rw-r--r-- | arch/arm/lib/clear_user.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S index 970d6c043774..e936352ccb00 100644 --- a/arch/arm/lib/clear_user.S +++ b/arch/arm/lib/clear_user.S | |||
| @@ -9,6 +9,7 @@ | |||
| 9 | */ | 9 | */ |
| 10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
| 11 | #include <asm/assembler.h> | 11 | #include <asm/assembler.h> |
| 12 | #include <asm/unwind.h> | ||
| 12 | 13 | ||
| 13 | .text | 14 | .text |
| 14 | 15 | ||
| @@ -20,6 +21,8 @@ | |||
| 20 | */ | 21 | */ |
| 21 | ENTRY(__clear_user_std) | 22 | ENTRY(__clear_user_std) |
| 22 | WEAK(arm_clear_user) | 23 | WEAK(arm_clear_user) |
| 24 | UNWIND(.fnstart) | ||
| 25 | UNWIND(.save {r1, lr}) | ||
| 23 | stmfd sp!, {r1, lr} | 26 | stmfd sp!, {r1, lr} |
| 24 | mov r2, #0 | 27 | mov r2, #0 |
| 25 | cmp r1, #4 | 28 | cmp r1, #4 |
| @@ -44,6 +47,7 @@ WEAK(arm_clear_user) | |||
| 44 | USER( strnebt r2, [r0]) | 47 | USER( strnebt r2, [r0]) |
| 45 | mov r0, #0 | 48 | mov r0, #0 |
| 46 | ldmfd sp!, {r1, pc} | 49 | ldmfd sp!, {r1, pc} |
| 50 | UNWIND(.fnend) | ||
| 47 | ENDPROC(arm_clear_user) | 51 | ENDPROC(arm_clear_user) |
| 48 | ENDPROC(__clear_user_std) | 52 | ENDPROC(__clear_user_std) |
| 49 | 53 | ||
