diff options
| author | Maxime Ripard <mripard@kernel.org> | 2024-04-23 08:48:56 +0200 |
|---|---|---|
| committer | Maxime Ripard <mripard@kernel.org> | 2024-04-23 08:48:56 +0200 |
| commit | c058e7a8f8af355e4a441c89400a6e95a16320e5 (patch) | |
| tree | ed96dcd06e69f508a3f8a112a29fd228289429a6 /kernel/fork.c | |
| parent | drm/rockchip: rk3066_hdmi: switch to struct drm_edid (diff) | |
| parent | Backmerge tag 'v6.9-rc5' into drm-next (diff) | |
| download | linux-c058e7a8f8af355e4a441c89400a6e95a16320e5.tar.gz linux-c058e7a8f8af355e4a441c89400a6e95a16320e5.zip | |
Merge drm/drm-next into drm-misc-next
MaĆra needs a backmerge to apply v3d patches, and Danilo for some
nouveau patches.
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Diffstat (limited to 'kernel/fork.c')
| -rw-r--r-- | kernel/fork.c | 33 |
1 files changed, 17 insertions, 16 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 39a5046c2f0b..aebb3e6c96dc 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -714,6 +714,23 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, } else if (anon_vma_fork(tmp, mpnt)) goto fail_nomem_anon_vma_fork; vm_flags_clear(tmp, VM_LOCKED_MASK); + /* + * Copy/update hugetlb private vma information. + */ + if (is_vm_hugetlb_page(tmp)) + hugetlb_dup_vma_private(tmp); + + /* + * Link the vma into the MT. After using __mt_dup(), memory + * allocation is not necessary here, so it cannot fail. + */ + vma_iter_bulk_store(&vmi, tmp); + + mm->map_count++; + + if (tmp->vm_ops && tmp->vm_ops->open) + tmp->vm_ops->open(tmp); + file = tmp->vm_file; if (file) { struct address_space *mapping = file->f_mapping; @@ -730,25 +747,9 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, i_mmap_unlock_write(mapping); } - /* - * Copy/update hugetlb private vma information. - */ - if (is_vm_hugetlb_page(tmp)) - hugetlb_dup_vma_private(tmp); - - /* - * Link the vma into the MT. After using __mt_dup(), memory - * allocation is not necessary here, so it cannot fail. - */ - vma_iter_bulk_store(&vmi, tmp); - - mm->map_count++; if (!(tmp->vm_flags & VM_WIPEONFORK)) retval = copy_page_range(tmp, mpnt); - if (tmp->vm_ops && tmp->vm_ops->open) - tmp->vm_ops->open(tmp); - if (retval) { mpnt = vma_next(&vmi); goto loop_out; |
