diff options
author | Nicolas Pitre <nico@org.rmk.(none)> | 2005-05-05 18:24:45 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-05-05 18:24:45 -0400 |
commit | 4b0e07a5566a4e3f141e52c1f17e683e4a5bba91 (patch) | |
tree | 4a2f67e6cb6ea665c6d45529a5b7c61ac255663d /arch/arm/kernel/entry-armv.S | |
parent | f7e68bbf405a45d6e7c5b8fc384ff1ba20dd7aa4 (diff) |
[PATCH] ARM: 2663/1: straightify TLS register emulation a bit more
Patch from Nicolas Pitre
This better express things, and should cover RMK's weird SMP toys.
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r-- | arch/arm/kernel/entry-armv.S | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index 080df907f24..c6af1a03e08 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S | |||
@@ -505,9 +505,9 @@ ENTRY(__switch_to) | |||
505 | mra r4, r5, acc0 | 505 | mra r4, r5, acc0 |
506 | stmia ip, {r4, r5} | 506 | stmia ip, {r4, r5} |
507 | #endif | 507 | #endif |
508 | #ifdef CONFIG_HAS_TLS_REG | 508 | #if defined(CONFIG_HAS_TLS_REG) |
509 | mcr p15, 0, r3, c13, c0, 3 @ set TLS register | 509 | mcr p15, 0, r3, c13, c0, 3 @ set TLS register |
510 | #else | 510 | #elif !defined(CONFIG_TLS_REG_EMUL) |
511 | mov r4, #0xffff0fff | 511 | mov r4, #0xffff0fff |
512 | str r3, [r4, #-15] @ TLS val at 0xffff0ff0 | 512 | str r3, [r4, #-15] @ TLS val at 0xffff0ff0 |
513 | #endif | 513 | #endif |
@@ -690,11 +690,7 @@ __kuser_cmpxchg: @ 0xffff0fc0 | |||
690 | 690 | ||
691 | __kuser_get_tls: @ 0xffff0fe0 | 691 | __kuser_get_tls: @ 0xffff0fe0 |
692 | 692 | ||
693 | #ifndef CONFIG_HAS_TLS_REG | 693 | #if !defined(CONFIG_HAS_TLS_REG) && !defined(CONFIG_TLS_REG_EMUL) |
694 | |||
695 | #ifdef CONFIG_SMP /* sanity check */ | ||
696 | #error "CONFIG_SMP without CONFIG_HAS_TLS_REG is wrong" | ||
697 | #endif | ||
698 | 694 | ||
699 | ldr r0, [pc, #(16 - 8)] @ TLS stored at 0xffff0ff0 | 695 | ldr r0, [pc, #(16 - 8)] @ TLS stored at 0xffff0ff0 |
700 | mov pc, lr | 696 | mov pc, lr |