summaryrefslogtreecommitdiffstats
path: root/arch/microblaze/kernel/process.c
diff options
context:
space:
mode:
authorEdgar E. Iglesias <edgar.iglesias@gmail.com>2012-02-24 14:52:25 +1000
committerMichal Simek <monstr@monstr.eu>2012-05-25 06:41:18 +0200
commitd5c15f17844b8883bc13b61a8ae114f0d3d59cdd (patch)
treece21cc8c43d6cedb18bfec77df7386b26b7601d6 /arch/microblaze/kernel/process.c
parent8d95e1224afa22e7881fc823849342b5602d736e (diff)
downloadlinux-d5c15f17844b8883bc13b61a8ae114f0d3d59cdd.tar.bz2
microblaze: Setup correct pointer to TLS area
Setup a pointer to the TLS area in copy_thread. r10 is 6th argumetn which contains TLS area. And r21 is the thread reg. Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com> Signed-off-by: David Holsgrove <david.holsgrove@petalogix.com> Signed-off-by: Michal Simek <monstr@monstr.eu>
Diffstat (limited to 'arch/microblaze/kernel/process.c')
-rw-r--r--arch/microblaze/kernel/process.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/microblaze/kernel/process.c b/arch/microblaze/kernel/process.c
index 883b92789cdf..1944e00f07e1 100644
--- a/arch/microblaze/kernel/process.c
+++ b/arch/microblaze/kernel/process.c
@@ -182,8 +182,12 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
#endif
ti->cpu_context.r15 = (unsigned long)ret_from_fork - 8;
+ /*
+ * r21 is the thread reg, r10 is 6th arg to clone
+ * which contains TLS area
+ */
if (clone_flags & CLONE_SETTLS)
- ;
+ childregs->r21 = childregs->r10;
return 0;
}