Re: [PATCH] x86/mm/pat: Support splitting of virtual memory areas

From: Lorenzo Stoakes
Date: Sun Aug 25 2024 - 12:05:45 EST


On Sun, Aug 25, 2024 at 05:24:03PM GMT, Nam Cao wrote:

[snip]

> diff --git a/mm/mmap.c b/mm/mmap.c
> index d0dfc85b209b..64067ddb8382 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -2486,6 +2486,12 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
> if (err)
> goto out_free_mpol;
>
> + if (unlikely(vma->vm_flags & VM_PFNMAP)) {
> + err = track_pfn_split(vma, addr);
> + if (err)
> + goto out_vma_unlink;
> + }
> +
> if (new->vm_file)
> get_file(new->vm_file);
>
> @@ -2515,6 +2521,8 @@ static int __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma,
> vma_next(vmi);
> return 0;
>
> +out_vma_unlink:
> + unlink_anon_vmas(vma);
> out_free_mpol:
> mpol_put(vma_policy(new));
> out_free_vmi:
> --
> 2.39.2
>

Right from the start the 6.11rc cycle mm-unstable and therefore -next has
moved this function out to mm/vma.c, so you will need to make this change
there rather than against mm/mmap.c (or whichever tree this is intended to
come through needs to sync up, especially as there's a fairly substantial
amount of change going on right now in VMA handling).

Sorry about that!