From 3356d7f226cfb203139a5431e68bdada84d314f5 Mon Sep 17 00:00:00 2001 From: Oleg Nesterov Date: Wed, 8 Aug 2012 17:17:46 +0200 Subject: [PATCH] --- yaml --- r: 323743 b: refs/heads/master c: 61559a8165da2b6bab7621ac36379c6280efacb6 h: refs/heads/master i: 323741: 874546d66bb1b8ab367d1571c726ae991c7f27d0 323739: 752d6867ad8efc861e9dbafc5146f54d2490bed8 323735: 6f38b73e692b7e22d442b81b00a933d143d96bba 323727: a36d1efdf75a92c605d56a45d38d1bc080bc0709 323711: 2fe474357630908c5d6553c1a3ba57e0a50a0f48 v: v3 --- [refs] | 2 +- trunk/include/linux/uprobes.h | 4 ---- trunk/kernel/events/uprobes.c | 10 ++-------- trunk/kernel/fork.c | 2 -- 4 files changed, 3 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index ca094dec5bc3..688026db8abd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f8ac4ec9c064b330dcc49e03c450fe74298c4622 +refs/heads/master: 61559a8165da2b6bab7621ac36379c6280efacb6 diff --git a/trunk/include/linux/uprobes.h b/trunk/include/linux/uprobes.h index 4a37ab153247..30297f95c8af 100644 --- a/trunk/include/linux/uprobes.h +++ b/trunk/include/linux/uprobes.h @@ -118,7 +118,6 @@ extern void uprobe_notify_resume(struct pt_regs *regs); extern bool uprobe_deny_signal(void); extern bool __weak arch_uprobe_skip_sstep(struct arch_uprobe *aup, struct pt_regs *regs); extern void uprobe_clear_state(struct mm_struct *mm); -extern void uprobe_reset_state(struct mm_struct *mm); #else /* !CONFIG_UPROBES */ struct uprobes_state { }; @@ -163,8 +162,5 @@ static inline void uprobe_copy_process(struct task_struct *t) static inline void uprobe_clear_state(struct mm_struct *mm) { } -static inline void uprobe_reset_state(struct mm_struct *mm) -{ -} #endif /* !CONFIG_UPROBES */ #endif /* _LINUX_UPROBES_H */ diff --git a/trunk/kernel/events/uprobes.c b/trunk/kernel/events/uprobes.c index 33870b17e1dd..610e1c8050cf 100644 --- a/trunk/kernel/events/uprobes.c +++ b/trunk/kernel/events/uprobes.c @@ -1148,16 +1148,10 @@ void uprobe_clear_state(struct mm_struct *mm) kfree(area); } -/* - * uprobe_reset_state - Free the area allocated for slots. - */ -void uprobe_reset_state(struct mm_struct *mm) -{ - mm->uprobes_state.xol_area = NULL; -} - void uprobe_dup_mmap(struct mm_struct *oldmm, struct mm_struct *newmm) { + newmm->uprobes_state.xol_area = NULL; + if (test_bit(MMF_HAS_UPROBES, &oldmm->flags)) set_bit(MMF_HAS_UPROBES, &newmm->flags); } diff --git a/trunk/kernel/fork.c b/trunk/kernel/fork.c index cbb5f9fcd3e8..2343c9eaaaf4 100644 --- a/trunk/kernel/fork.c +++ b/trunk/kernel/fork.c @@ -837,8 +837,6 @@ struct mm_struct *dup_mm(struct task_struct *tsk) #ifdef CONFIG_TRANSPARENT_HUGEPAGE mm->pmd_huge_pte = NULL; #endif - uprobe_reset_state(mm); - if (!mm_init(mm, tsk)) goto fail_nomem;