diff options
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index a0dad84567c9..1c999f3e0b47 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -183,7 +183,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) | |||
183 | /* One for us, one for whoever does the "release_task()" (usually parent) */ | 183 | /* One for us, one for whoever does the "release_task()" (usually parent) */ |
184 | atomic_set(&tsk->usage,2); | 184 | atomic_set(&tsk->usage,2); |
185 | atomic_set(&tsk->fs_excl, 0); | 185 | atomic_set(&tsk->fs_excl, 0); |
186 | #ifdef CONFIG_BLK_DEV_IO_TRACE | ||
186 | tsk->btrace_seq = 0; | 187 | tsk->btrace_seq = 0; |
188 | #endif | ||
187 | tsk->splice_pipe = NULL; | 189 | tsk->splice_pipe = NULL; |
188 | return tsk; | 190 | return tsk; |
189 | } | 191 | } |
@@ -1061,7 +1063,11 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1061 | #endif | 1063 | #endif |
1062 | #ifdef CONFIG_TRACE_IRQFLAGS | 1064 | #ifdef CONFIG_TRACE_IRQFLAGS |
1063 | p->irq_events = 0; | 1065 | p->irq_events = 0; |
1066 | #ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW | ||
1067 | p->hardirqs_enabled = 1; | ||
1068 | #else | ||
1064 | p->hardirqs_enabled = 0; | 1069 | p->hardirqs_enabled = 0; |
1070 | #endif | ||
1065 | p->hardirq_enable_ip = 0; | 1071 | p->hardirq_enable_ip = 0; |
1066 | p->hardirq_enable_event = 0; | 1072 | p->hardirq_enable_event = 0; |
1067 | p->hardirq_disable_ip = _THIS_IP_; | 1073 | p->hardirq_disable_ip = _THIS_IP_; |
@@ -1144,7 +1150,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1144 | 1150 | ||
1145 | /* Our parent execution domain becomes current domain | 1151 | /* Our parent execution domain becomes current domain |
1146 | These must match for thread signalling to apply */ | 1152 | These must match for thread signalling to apply */ |
1147 | |||
1148 | p->parent_exec_id = p->self_exec_id; | 1153 | p->parent_exec_id = p->self_exec_id; |
1149 | 1154 | ||
1150 | /* ok, now we should be set up.. */ | 1155 | /* ok, now we should be set up.. */ |
@@ -1167,6 +1172,9 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1167 | /* Need tasklist lock for parent etc handling! */ | 1172 | /* Need tasklist lock for parent etc handling! */ |
1168 | write_lock_irq(&tasklist_lock); | 1173 | write_lock_irq(&tasklist_lock); |
1169 | 1174 | ||
1175 | /* for sys_ioprio_set(IOPRIO_WHO_PGRP) */ | ||
1176 | p->ioprio = current->ioprio; | ||
1177 | |||
1170 | /* | 1178 | /* |
1171 | * The task hasn't been attached yet, so its cpus_allowed mask will | 1179 | * The task hasn't been attached yet, so its cpus_allowed mask will |
1172 | * not be changed, nor will its assigned CPU. | 1180 | * not be changed, nor will its assigned CPU. |
@@ -1226,11 +1234,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1226 | } | 1234 | } |
1227 | } | 1235 | } |
1228 | 1236 | ||
1229 | /* | ||
1230 | * inherit ioprio | ||
1231 | */ | ||
1232 | p->ioprio = current->ioprio; | ||
1233 | |||
1234 | if (likely(p->pid)) { | 1237 | if (likely(p->pid)) { |
1235 | add_parent(p); | 1238 | add_parent(p); |
1236 | if (unlikely(p->ptrace & PT_PTRACED)) | 1239 | if (unlikely(p->ptrace & PT_PTRACED)) |