* arch/openrisc/kernel/process.c:
        (copy_thread): Support for CLONE_SETTLS flag.
---
 arch/openrisc/kernel/process.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/arch/openrisc/kernel/process.c b/arch/openrisc/kernel/process.c
index 55210f3..12056bf 100644
--- a/arch/openrisc/kernel/process.c
+++ b/arch/openrisc/kernel/process.c
@@ -142,6 +142,13 @@ copy_thread(unsigned long clone_flags, unsigned long usp,
                childregs->sp = usp;
        }
 
+       /*
+        * If CLONE_SETTLS is set, set "tp" in the new task to "r7",
+        * which is passed in as arg #5 to sys_clone().
+        */
+       if (clone_flags & CLONE_SETTLS)
+               childregs->gpr[10] = regs->gpr[7];
+
        childregs->gpr[11] = 0; /* Result from fork() */
 
        /*
-- 
1.8.1.2

_______________________________________________
Linux mailing list
Linux@lists.openrisc.net
http://lists.openrisc.net/listinfo/linux

Reply via email to