X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=arch%2Fum%2Fkernel%2Fprocess_kern.c;h=3113cab8675e6358c6909201ebbb3ae90beacf60;hb=987b0145d94eecf292d8b301228356f44611ab7c;hp=f6a5a502120beb1d1027684d3528df4624ee9d81;hpb=f7ed79d23a47594e7834d66a8f14449796d4f3e6;p=linux-2.6.git diff --git a/arch/um/kernel/process_kern.c b/arch/um/kernel/process_kern.c index f6a5a5021..3113cab86 100644 --- a/arch/um/kernel/process_kern.c +++ b/arch/um/kernel/process_kern.c @@ -156,25 +156,9 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp, unsigned long stack_top, struct task_struct * p, struct pt_regs *regs) { - int ret; - p->thread = (struct thread_struct) INIT_THREAD; - ret = CHOOSE_MODE_PROC(copy_thread_tt, copy_thread_skas, nr, - clone_flags, sp, stack_top, p, regs); - - if (ret || !current->thread.forking) - goto out; - - clear_flushed_tls(p); - - /* - * Set a new TLS for the child thread? - */ - if (clone_flags & CLONE_SETTLS) - ret = arch_copy_tls(p); - -out: - return ret; + return(CHOOSE_MODE_PROC(copy_thread_tt, copy_thread_skas, nr, + clone_flags, sp, stack_top, p, regs)); } void initial_thread_cb(void (*proc)(void *), void *arg) @@ -201,6 +185,10 @@ void default_idle(void) { CHOOSE_MODE(uml_idle_timer(), (void) 0); + atomic_inc(&init_mm.mm_count); + current->mm = &init_mm; + current->active_mm = &init_mm; + while(1){ /* endless idle loop with no priority at all */ @@ -419,7 +407,7 @@ static int proc_read_sysemu(char *buf, char **start, off_t offset, int size,int return strlen(buf); } -static int proc_write_sysemu(struct file *file,const char __user *buf, unsigned long count,void *data) +static int proc_write_sysemu(struct file *file,const char *buf, unsigned long count,void *data) { char tmp[2];