diff options
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 3fd7861de4d1..e864e482118a 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -22,6 +22,7 @@ | |||
22 | #include <asm/thread_notify.h> | 22 | #include <asm/thread_notify.h> |
23 | #include <asm/unwind.h> | 23 | #include <asm/unwind.h> |
24 | #include <asm/unistd.h> | 24 | #include <asm/unistd.h> |
25 | #include <asm/tls.h> | ||
25 | 26 | ||
26 | #include "entry-header.S" | 27 | #include "entry-header.S" |
27 | 28 | ||
@@ -735,12 +736,7 @@ ENTRY(__switch_to) | |||
735 | #ifdef CONFIG_MMU | 736 | #ifdef CONFIG_MMU |
736 | ldr r6, [r2, #TI_CPU_DOMAIN] | 737 | ldr r6, [r2, #TI_CPU_DOMAIN] |
737 | #endif | 738 | #endif |
738 | #if defined(CONFIG_HAS_TLS_REG) | 739 | set_tls r3, r4, r5 |
739 | mcr p15, 0, r3, c13, c0, 3 @ set TLS register | ||
740 | #elif !defined(CONFIG_TLS_REG_EMUL) | ||
741 | mov r4, #0xffff0fff | ||
742 | str r3, [r4, #-15] @ TLS val at 0xffff0ff0 | ||
743 | #endif | ||
744 | #ifdef CONFIG_MMU | 740 | #ifdef CONFIG_MMU |
745 | mcr p15, 0, r6, c3, c0, 0 @ Set domain register | 741 | mcr p15, 0, r6, c3, c0, 0 @ Set domain register |
746 | #endif | 742 | #endif |
@@ -1005,17 +1001,12 @@ kuser_cmpxchg_fixup: | |||
1005 | */ | 1001 | */ |
1006 | 1002 | ||
1007 | __kuser_get_tls: @ 0xffff0fe0 | 1003 | __kuser_get_tls: @ 0xffff0fe0 |
1008 | 1004 | ldr r0, [pc, #(16 - 8)] @ read TLS, set in kuser_get_tls_init | |
1009 | #if !defined(CONFIG_HAS_TLS_REG) && !defined(CONFIG_TLS_REG_EMUL) | ||
1010 | ldr r0, [pc, #(16 - 8)] @ TLS stored at 0xffff0ff0 | ||
1011 | #else | ||
1012 | mrc p15, 0, r0, c13, c0, 3 @ read TLS register | ||
1013 | #endif | ||
1014 | usr_ret lr | 1005 | usr_ret lr |
1015 | 1006 | mrc p15, 0, r0, c13, c0, 3 @ 0xffff0fe8 hardware TLS code | |
1016 | .rep 5 | 1007 | .rep 4 |
1017 | .word 0 @ pad up to __kuser_helper_version | 1008 | .word 0 @ 0xffff0ff0 software TLS value, then |
1018 | .endr | 1009 | .endr @ pad up to __kuser_helper_version |
1019 | 1010 | ||
1020 | /* | 1011 | /* |
1021 | * Reference declaration: | 1012 | * Reference declaration: |