aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/fork.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index bc0e96b78dfd..c777964c0662 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1080,15 +1080,6 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
1080 return 0; 1080 return 0;
1081} 1081}
1082 1082
1083static void copy_flags(unsigned long clone_flags, struct task_struct *p)
1084{
1085 unsigned long new_flags = p->flags;
1086
1087 new_flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER);
1088 new_flags |= PF_FORKNOEXEC;
1089 p->flags = new_flags;
1090}
1091
1092SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr) 1083SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
1093{ 1084{
1094 current->clear_child_tid = tidptr; 1085 current->clear_child_tid = tidptr;
@@ -1238,7 +1229,8 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1238 goto bad_fork_cleanup_count; 1229 goto bad_fork_cleanup_count;
1239 1230
1240 delayacct_tsk_init(p); /* Must remain after dup_task_struct() */ 1231 delayacct_tsk_init(p); /* Must remain after dup_task_struct() */
1241 copy_flags(clone_flags, p); 1232 p->flags &= ~(PF_SUPERPRIV | PF_WQ_WORKER);
1233 p->flags |= PF_FORKNOEXEC;
1242 INIT_LIST_HEAD(&p->children); 1234 INIT_LIST_HEAD(&p->children);
1243 INIT_LIST_HEAD(&p->sibling); 1235 INIT_LIST_HEAD(&p->sibling);
1244 rcu_copy_process(p); 1236 rcu_copy_process(p);