diff options
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 11 |
1 files changed, 2 insertions, 9 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 2c8857e12855..a2b1efc20928 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
| @@ -330,6 +330,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig) | |||
| 330 | tsk->btrace_seq = 0; | 330 | tsk->btrace_seq = 0; |
| 331 | #endif | 331 | #endif |
| 332 | tsk->splice_pipe = NULL; | 332 | tsk->splice_pipe = NULL; |
| 333 | tsk->task_frag.page = NULL; | ||
| 333 | 334 | ||
| 334 | account_kernel_stack(ti, 1); | 335 | account_kernel_stack(ti, 1); |
| 335 | 336 | ||
| @@ -353,6 +354,7 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | |||
| 353 | 354 | ||
| 354 | down_write(&oldmm->mmap_sem); | 355 | down_write(&oldmm->mmap_sem); |
| 355 | flush_cache_dup_mm(oldmm); | 356 | flush_cache_dup_mm(oldmm); |
| 357 | uprobe_dup_mmap(oldmm, mm); | ||
| 356 | /* | 358 | /* |
| 357 | * Not linked in yet - no deadlock potential: | 359 | * Not linked in yet - no deadlock potential: |
| 358 | */ | 360 | */ |
| @@ -454,9 +456,6 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | |||
| 454 | 456 | ||
| 455 | if (retval) | 457 | if (retval) |
| 456 | goto out; | 458 | goto out; |
| 457 | |||
| 458 | if (file) | ||
| 459 | uprobe_mmap(tmp); | ||
| 460 | } | 459 | } |
| 461 | /* a new mm has just been created */ | 460 | /* a new mm has just been created */ |
| 462 | arch_dup_mmap(oldmm, mm); | 461 | arch_dup_mmap(oldmm, mm); |
| @@ -839,8 +838,6 @@ struct mm_struct *dup_mm(struct task_struct *tsk) | |||
| 839 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 838 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
| 840 | mm->pmd_huge_pte = NULL; | 839 | mm->pmd_huge_pte = NULL; |
| 841 | #endif | 840 | #endif |
| 842 | uprobe_reset_state(mm); | ||
| 843 | |||
| 844 | if (!mm_init(mm, tsk)) | 841 | if (!mm_init(mm, tsk)) |
| 845 | goto fail_nomem; | 842 | goto fail_nomem; |
| 846 | 843 | ||
| @@ -1280,11 +1277,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
| 1280 | #endif | 1277 | #endif |
| 1281 | #ifdef CONFIG_TRACE_IRQFLAGS | 1278 | #ifdef CONFIG_TRACE_IRQFLAGS |
| 1282 | p->irq_events = 0; | 1279 | p->irq_events = 0; |
| 1283 | #ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW | ||
| 1284 | p->hardirqs_enabled = 1; | ||
| 1285 | #else | ||
| 1286 | p->hardirqs_enabled = 0; | 1280 | p->hardirqs_enabled = 0; |
| 1287 | #endif | ||
| 1288 | p->hardirq_enable_ip = 0; | 1281 | p->hardirq_enable_ip = 0; |
| 1289 | p->hardirq_enable_event = 0; | 1282 | p->hardirq_enable_event = 0; |
| 1290 | p->hardirq_disable_ip = _THIS_IP_; | 1283 | p->hardirq_disable_ip = _THIS_IP_; |
