|
@@ -1080,15 +1080,6 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-static void copy_flags(unsigned long clone_flags, struct task_struct *p)
|
|
|
-{
|
|
|
- unsigned long new_flags = p->flags;
|
|
|
-
|
|
|
- new_flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER);
|
|
|
- new_flags |= PF_FORKNOEXEC;
|
|
|
- p->flags = new_flags;
|
|
|
-}
|
|
|
-
|
|
|
SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
|
|
|
{
|
|
|
current->clear_child_tid = tidptr;
|
|
@@ -1238,7 +1229,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
|
|
|
goto bad_fork_cleanup_count;
|
|
|
|
|
|
delayacct_tsk_init(p); /* Must remain after dup_task_struct() */
|
|
|
- copy_flags(clone_flags, p);
|
|
|
+ p->flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER);
|
|
|
+ p->flags |= PF_FORKNOEXEC;
|
|
|
INIT_LIST_HEAD(&p->children);
|
|
|
INIT_LIST_HEAD(&p->sibling);
|
|
|
rcu_copy_process(p);
|