aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid 'Digit' Turner <digit@android.com>2009-09-23 10:54:25 -0700
committerDavid 'Digit' Turner <digit@android.com>2009-09-23 18:14:07 -0700
commita90c4549f1500123b1c233370104d24032639775 (patch)
tree04a9edea75025cf076382be43658407627cfe9bc
parentab8d14ecc390d8db3b5d206e82f815e156220fdc (diff)
downloadqemu-a90c4549f1500123b1c233370104d24032639775.tar.gz
[ARM] goldfish: Hack kernel to use both TLS register and 0xffff0ff0
to store current TLS area address. This is required for compatibility with existing device builds, will disappear when these are cleaned up. Signed-off-by: David 'Digit' Turner <digit@android.com>
-rw-r--r--arch/arm/kernel/entry-armv.S4
-rw-r--r--arch/arm/kernel/traps.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index f74313b6f5b..f6d63fb6764 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -703,10 +703,10 @@ ENTRY(__switch_to)
#endif
#if defined(CONFIG_HAS_TLS_REG)
mcr p15, 0, r3, c13, c0, 3 @ set TLS register
-#elif !defined(CONFIG_TLS_REG_EMUL)
+#endif
mov r4, #0xffff0fff
str r3, [r4, #-15] @ TLS val at 0xffff0ff0
-#endif
+
#ifdef CONFIG_MMU
mcr p15, 0, r6, c3, c0, 0 @ Set domain register
#endif
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
index 79abc4ddc0c..659a98ef072 100644
--- a/arch/arm/kernel/traps.c
+++ b/arch/arm/kernel/traps.c
@@ -482,7 +482,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
thread->tp_value = regs->ARM_r0;
#if defined(CONFIG_HAS_TLS_REG)
asm ("mcr p15, 0, %0, c13, c0, 3" : : "r" (regs->ARM_r0) );
-#elif !defined(CONFIG_TLS_REG_EMUL)
+#endif
/*
* User space must never try to access this directly.
* Expect your app to break eventually if you do so.
@@ -490,7 +490,7 @@ asmlinkage int arm_syscall(int no, struct pt_regs *regs)
* (see entry-armv.S for details)
*/
*((unsigned int *)0xffff0ff0) = regs->ARM_r0;
-#endif
+
return 0;
#ifdef CONFIG_NEEDS_SYSCALL_FOR_CMPXCHG