diff options
author | David 'Digit' Turner <digit@android.com> | 2009-09-23 10:54:25 -0700 |
---|---|---|
committer | David 'Digit' Turner <digit@android.com> | 2009-09-23 18:14:07 -0700 |
commit | a90c4549f1500123b1c233370104d24032639775 (patch) | |
tree | 04a9edea75025cf076382be43658407627cfe9bc | |
parent | ab8d14ecc390d8db3b5d206e82f815e156220fdc (diff) | |
download | qemu-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.S | 4 | ||||
-rw-r--r-- | arch/arm/kernel/traps.c | 4 |
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 |