aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/lib
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@codeaurora.org>2015-09-14 19:11:30 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2015-10-03 11:36:45 -0400
commit6f56a68d0bed16c13e9ec958cd28acbc2991d495 (patch)
treebc754df52c9ca7f0d7bcf4aec51cbb475847931d /arch/arm/lib
parentb97b272e72ae07a04a664685c876439215bdeb74 (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.S4
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 */
21ENTRY(__clear_user_std) 22ENTRY(__clear_user_std)
22WEAK(arm_clear_user) 23WEAK(arm_clear_user)
24UNWIND(.fnstart)
25UNWIND(.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)
44USER( strnebt r2, [r0]) 47USER( strnebt r2, [r0])
45 mov r0, #0 48 mov r0, #0
46 ldmfd sp!, {r1, pc} 49 ldmfd sp!, {r1, pc}
50UNWIND(.fnend)
47ENDPROC(arm_clear_user) 51ENDPROC(arm_clear_user)
48ENDPROC(__clear_user_std) 52ENDPROC(__clear_user_std)
49 53