diff options
author | Vegard Nossum <vegard.nossum@oracle.com> | 2017-02-27 17:30:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-27 21:43:48 -0500 |
commit | f1f1007644ffc8051a4c11427d58b1967ae7b75a (patch) | |
tree | e7e590cb1baa494b963d81b967a3f98d3c56f33e /kernel/sched/core.c | |
parent | 522b837c672eba9e9fb69f9f52bced0256dc6697 (diff) |
mm: add new mmgrab() helper
Apart from adding the helper function itself, the rest of the kernel is
converted mechanically using:
git grep -l 'atomic_inc.*mm_count' | xargs sed -i 's/atomic_inc(&\(.*\)->mm_count);/mmgrab\(\1\);/'
git grep -l 'atomic_inc.*mm_count' | xargs sed -i 's/atomic_inc(&\(.*\)\.mm_count);/mmgrab\(\&\1\);/'
This is needed for a later patch that hooks into the helper, but might
be a worthwhile cleanup on its own.
(Michal Hocko provided most of the kerneldoc comment.)
Link: http://lkml.kernel.org/r/20161218123229.22952-1-vegard.nossum@oracle.com
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r-- | kernel/sched/core.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c index e1ae6ac15eac..6ea1925ac5c0 100644 --- a/kernel/sched/core.c +++ b/kernel/sched/core.c | |||
@@ -2847,7 +2847,7 @@ context_switch(struct rq *rq, struct task_struct *prev, | |||
2847 | 2847 | ||
2848 | if (!mm) { | 2848 | if (!mm) { |
2849 | next->active_mm = oldmm; | 2849 | next->active_mm = oldmm; |
2850 | atomic_inc(&oldmm->mm_count); | 2850 | mmgrab(oldmm); |
2851 | enter_lazy_tlb(oldmm, next); | 2851 | enter_lazy_tlb(oldmm, next); |
2852 | } else | 2852 | } else |
2853 | switch_mm_irqs_off(oldmm, mm, next); | 2853 | switch_mm_irqs_off(oldmm, mm, next); |
@@ -6098,7 +6098,7 @@ void __init sched_init(void) | |||
6098 | /* | 6098 | /* |
6099 | * The boot idle thread does lazy MMU switching as well: | 6099 | * The boot idle thread does lazy MMU switching as well: |
6100 | */ | 6100 | */ |
6101 | atomic_inc(&init_mm.mm_count); | 6101 | mmgrab(&init_mm); |
6102 | enter_lazy_tlb(&init_mm, current); | 6102 | enter_lazy_tlb(&init_mm, current); |
6103 | 6103 | ||
6104 | /* | 6104 | /* |