diff options
author | Peter Zijlstra <peterz@infradead.org> | 2023-04-21 13:24:18 +0200 |
---|---|---|
committer | Peter Zijlstra <peterz@infradead.org> | 2023-04-21 13:24:18 +0200 |
commit | 5a4d3b38ed0cd5bbb03eccea6d9949136abc45c3 (patch) | |
tree | 1e653da8837c52ed1d24126974a0d7dbbdf34e02 /kernel/fork.c | |
parent | 9b8e17813aeccc29c2f9f2e6e68997a6eac2d26d (diff) | |
parent | 6a8f57ae2eb07ab39a6f0ccad60c760743051026 (diff) |
Merge branch 'v6.3-rc7'
Sync with the urgent patches; in particular:
a53ce18cacb4 ("sched/fair: Sanitize vruntime of entity being migrated")
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index d8cda4c6de6c..0c92f224c68c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -617,6 +617,7 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, if (retval) goto out; + mt_clear_in_rcu(vmi.mas.tree); for_each_vma(old_vmi, mpnt) { struct file *file; @@ -700,6 +701,8 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, retval = arch_dup_mmap(oldmm, mm); loop_out: vma_iter_free(&vmi); + if (!retval) + mt_set_in_rcu(vmi.mas.tree); out: mmap_write_unlock(mm); flush_tlb_mm(oldmm); @@ -755,11 +758,6 @@ static void check_mm(struct mm_struct *mm) for (i = 0; i < NR_MM_COUNTERS; i++) { long x = percpu_counter_sum(&mm->rss_stat[i]); - if (likely(!x)) - continue; - - /* Making sure this is not due to race with CPU offlining. */ - x = percpu_counter_sum_all(&mm->rss_stat[i]); if (unlikely(x)) pr_alert("BUG: Bad rss-counter state mm:%p type:%s val:%ld\n", mm, resident_page_types[i], x); |