aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/process_32.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-02-21 05:18:40 +0100
committerIngo Molnar <mingo@elte.hu>2008-04-17 17:40:49 +0200
commit513ad84bf60d96a6998bca10ed07c3d340449be8 (patch)
tree2a1600178aea7e130c5881ac861cb5aa69450937 /arch/x86/kernel/process_32.c
parentx86: more cleanups in arch/x86/boot/compressed/misc.c (diff)
downloadlinux-dev-513ad84bf60d96a6998bca10ed07c3d340449be8.tar.xz
linux-dev-513ad84bf60d96a6998bca10ed07c3d340449be8.zip
x86: de-macro start_thread()
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/process_32.c')
-rw-r--r--arch/x86/kernel/process_32.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 2cd89b8a7050..9230ce060d09 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -512,6 +512,21 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
return err;
}
+void
+start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
+{
+ __asm__("movl %0, %%gs" :: "r"(0));
+ regs->fs = 0;
+ set_fs(USER_DS);
+ regs->ds = __USER_DS;
+ regs->es = __USER_DS;
+ regs->ss = __USER_DS;
+ regs->cs = __USER_CS;
+ regs->ip = new_ip;
+ regs->sp = new_sp;
+}
+EXPORT_SYMBOL_GPL(start_thread);
+
#ifdef CONFIG_SECCOMP
static void hard_disable_TSC(void)
{