]> err.no Git - linux-2.6/blobdiff - arch/um/kernel/process_kern.c
Merge branch 'upstream' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/misc-2.6
[linux-2.6] / arch / um / kernel / process_kern.c
index 804c6bbdf67c157e5e28b6a9be9a76c9d8c0ce04..c23d8a08d0ff5403df391fbdd04ca86baa89a391 100644 (file)
@@ -8,6 +8,7 @@
 #include "linux/kernel.h"
 #include "linux/sched.h"
 #include "linux/interrupt.h"
+#include "linux/string.h"
 #include "linux/mm.h"
 #include "linux/slab.h"
 #include "linux/utsname.h"
@@ -95,8 +96,8 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
 
        current->thread.request.u.thread.proc = fn;
        current->thread.request.u.thread.arg = arg;
-       pid = do_fork(CLONE_VM | CLONE_UNTRACED | flags, 0, NULL, 0, NULL,
-                     NULL);
+       pid = do_fork(CLONE_VM | CLONE_UNTRACED | flags, 0,
+                     &current->thread.regs, 0, NULL, NULL);
        if(pid < 0)
                panic("do_fork failed in kernel_thread, errno = %d", pid);
        return(pid);
@@ -168,7 +169,7 @@ int current_pid(void)
 
 void default_idle(void)
 {
-       uml_idle_timer();
+       CHOOSE_MODE(uml_idle_timer(), (void) 0);
 
        atomic_inc(&init_mm.mm_count);
        current->mm = &init_mm;
@@ -322,12 +323,7 @@ void do_uml_exitcalls(void)
 
 char *uml_strdup(char *string)
 {
-       char *new;
-
-       new = kmalloc(strlen(string) + 1, GFP_KERNEL);
-       if(new == NULL) return(NULL);
-       strcpy(new, string);
-       return(new);
+       return kstrdup(string, GFP_KERNEL);
 }
 
 int copy_to_user_proc(void __user *to, void *from, int size)
@@ -416,7 +412,7 @@ int __init make_proc_sysemu(void)
 
        if (ent == NULL)
        {
-               printk("Failed to register /proc/sysemu\n");
+               printk(KERN_WARNING "Failed to register /proc/sysemu\n");
                return(0);
        }