diff options
author | Oleg Nesterov <oleg@redhat.com> | 2012-08-08 11:17:46 -0400 |
---|---|---|
committer | Oleg Nesterov <oleg@redhat.com> | 2012-08-28 12:21:19 -0400 |
commit | 61559a8165da2b6bab7621ac36379c6280efacb6 (patch) | |
tree | 22d885fda72ffadbaa735ceeeabd266177d66eab /kernel | |
parent | f8ac4ec9c064b330dcc49e03c450fe74298c4622 (diff) |
uprobes: Fold uprobe_reset_state() into uprobe_dup_mmap()
Now that we have uprobe_dup_mmap() we can fold uprobe_reset_state()
into the new hook and remove it. mmput()->uprobe_clear_state() can't
be called before dup_mmap().
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/events/uprobes.c | 10 | ||||
-rw-r--r-- | kernel/fork.c | 2 |
2 files changed, 2 insertions, 10 deletions
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 33870b17e1dd..610e1c8050cf 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c | |||
@@ -1148,16 +1148,10 @@ void uprobe_clear_state(struct mm_struct *mm) | |||
1148 | kfree(area); | 1148 | kfree(area); |
1149 | } | 1149 | } |
1150 | 1150 | ||
1151 | /* | ||
1152 | * uprobe_reset_state - Free the area allocated for slots. | ||
1153 | */ | ||
1154 | void uprobe_reset_state(struct mm_struct *mm) | ||
1155 | { | ||
1156 | mm->uprobes_state.xol_area = NULL; | ||
1157 | } | ||
1158 | |||
1159 | void uprobe_dup_mmap(struct mm_struct *oldmm, struct mm_struct *newmm) | 1151 | void uprobe_dup_mmap(struct mm_struct *oldmm, struct mm_struct *newmm) |
1160 | { | 1152 | { |
1153 | newmm->uprobes_state.xol_area = NULL; | ||
1154 | |||
1161 | if (test_bit(MMF_HAS_UPROBES, &oldmm->flags)) | 1155 | if (test_bit(MMF_HAS_UPROBES, &oldmm->flags)) |
1162 | set_bit(MMF_HAS_UPROBES, &newmm->flags); | 1156 | set_bit(MMF_HAS_UPROBES, &newmm->flags); |
1163 | } | 1157 | } |
diff --git a/kernel/fork.c b/kernel/fork.c index cbb5f9fcd3e8..2343c9eaaaf4 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -837,8 +837,6 @@ struct mm_struct *dup_mm(struct task_struct *tsk) | |||
837 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE | 837 | #ifdef CONFIG_TRANSPARENT_HUGEPAGE |
838 | mm->pmd_huge_pte = NULL; | 838 | mm->pmd_huge_pte = NULL; |
839 | #endif | 839 | #endif |
840 | uprobe_reset_state(mm); | ||
841 | |||
842 | if (!mm_init(mm, tsk)) | 840 | if (!mm_init(mm, tsk)) |
843 | goto fail_nomem; | 841 | goto fail_nomem; |
844 | 842 | ||