vserver 1.9.5.x5
[linux-2.6.git] / arch / parisc / kernel / process.c
index dd938ef..320fca5 100644 (file)
@@ -262,7 +262,7 @@ sys_clone(unsigned long clone_flags, unsigned long usp,
        if(usp == 0)
                usp = regs->gr[30];
 
-       return do_fork(clone_flags & ~CLONE_IDLETASK, usp, regs, 0, user_tid, NULL);
+       return do_fork(clone_flags, usp, regs, 0, user_tid, NULL);
 }
 
 int
@@ -363,8 +363,11 @@ asmlinkage int sys_execve(struct pt_regs *regs)
                goto out;
        error = do_execve(filename, (char **) regs->gr[25],
                (char **) regs->gr[24], regs);
-       if (error == 0)
+       if (error == 0) {
+               task_lock(current);
                current->ptrace &= ~PT_DTRACE;
+               task_unlock(current);
+       }
        putname(filename);
 out: